• sqlserver为不同数据库建立不同访问权限的帐号


    正式服务器中,为了安全、互不干扰,会给个DB库分配不同的账号,A库有AReadAReadWriteAOwn账号,B库有BReadBReadWriteBOwn账号。需要配置出来,甚至还能限制AReadUserTable只能对A库的User表读取权限。

     以下操作有问题、不能完整实现需求!我抽空改

    有UI操作和代码命令行操作2种。

    需要区分好:账号、数据库角色、数据库用户等概念(参考https://www.cnblogs.com/xwdreamer/archive/2012/06/25/2562828.html 的解释):

    UI:https://www.cnblogs.com/yxyht/archive/2013/03/22/2975880.html  (建议将《强制实施密码策略》及其下2个选项去除勾选)。

    代码:https://www.cnblogs.com/xwdreamer/archive/2012/06/25/2562828.html

    1 --创建登陆帐户(create login)
    2 CREATE LOGIN CommonAuthoritySystem_Read WITH PASSWORD='123456', DEFAULT_DATABASE=CommonAuthoritySystem
    3 
    4 --为登陆账户创建数据库用户(create user),在mydb数据库中的security中的user下可以找到新创建的CommonAuthoritySystem_Read
    5 CREATE USER CommonAuthoritySystem_Read FOR LOGIN CommonAuthoritySystem_Read WITH DEFAULT_SCHEMA=dbo
    6 
    7 --通过加入数据库角色,赋予数据库用户“db_owner”权限
    8 ----db_owner,db_datareader,db_datawriter
    9 EXEC sp_addrolemember 'db_datareader', 'CommonAuthoritySystem_Read'

    注意:若要限制表,需要到数据库——表  属性那边去限制

    真心感到:虽然windows可视化配置简单易学,但大规模运维如果还是点点弄弄,效率太低、容易出错、容易忘记,不如命令行封装成参数方法,用时只要执行就行。快速!

    所以linux多搞搞,还是很高效的,深感linux、mysql的精神强大。

    登陆帐户名为:“dba”,登陆密码:abcd1234@”,默认连接到的数据库:“mydb”。 这时候,dba 帐户就可以连接到 SQL Server 服务器上了。但是此时还不能 访问数据库中的对象(严格的说,此时 dba 帐户默认是 guest 数据库用户身份, 可以访问 guest 能够访问的数据库对象)。

    要使 dba 帐户能够在 mydb 数据库中访问自己需要的对象, 需要在数据库 mydb 中建立一个“数据库用户”,赋予这个“数据库用户” 某些访问权限,并且把登陆帐户“dba” 和这个“数据库用户” 映射起来。 习惯上,“数据库用户” 的名字和 “登陆帐户”的名字相同,即:“dba”。 创建“数据库用户”和建立映射关系只需要一步即可完成:

    2. 创建数据库用户(create user):

    --为登陆账户创建数据库用户(create user),在mydb数据库中的security中的user下可以找到新创建的dba
    create user dba for login dba with default_schema=dbo

    并指定数据库用户“dba” 的默认 schema 是“dbo”。这意味着 用户“dba” 在执行“select * from t”,实际上执行的是 “select * from dbo.t”。

    3. 通过加入数据库角色,赋予数据库用户“dba”权限:

    --通过加入数据库角色,赋予数据库用户“db_owner”权限
    exec sp_addrolemember 'db_owner', 'dba'

    此时,dba 就可以全权管理数据库 mydb 中的对象了。

  • 相关阅读:
    shiro标签
    ssm项目整合shiro
    关于POI读取模板的单元格位为null,或者无法正确获取样式的简单处理方案
    为什么wait的条件放在while里面,用if就不行
    Dto中有List<DTO> children,那么如何把List<Dto>转为List<VO>
    开发踩过的坑
    POI一直不能给sheet赋值
    写给研发的需求能不能不要废话
    写着写着就不知道自己定义的方法是干嘛的了
    一个if else的问题,卡了一个小时,我也是……
  • 原文地址:https://www.cnblogs.com/nlh774/p/8290478.html
Copyright © 2020-2023  润新知