随后创建了一个登录l,这个用户只有用我们特定的应用程序登录

发布时间:2020-05-02  栏目:数据  评论:0 Comments

我看很多站长都是一个sa权限给所有数据为用户,如果有多个也同样用sa用户,这样很不安全,下面我来介绍一下每个数据库给个单独的用户权限。

–1. 创建示例环境。
首先使用下面的代码创建一个登录l_test,并且为登录在数据库pubs中创建关联的用户账户u_test,并且授予用户账户u_test对表titles的SELECT权限,用以实现登录l_test连接到SQL
Server实例后,可以访问表titles。然后创建了一个应用程序角色r_p_test,授予该角色对表jobs的SELECT权限,用以实现激活r_p_test时,允许访问特定的表jobs。
USE pubs

/*–示例说明
      
 示例在数据库pubs中创建一个拥有表jobs的所有权限、拥有表titles的SELECT权限的角色r_test
  
 随后创建了一个登录l_test,然后在数据库pubs中为登录l_test创建了用户账户u_test
  
 同时将用户账户u_test添加到角色r_test中,使其通过权限继承获取了与角色r_test一样的权限
    最后使用DENY语句拒绝了用户账户u_test对表titles的SELECT权限。
    经过这样的处理,使用l_test登录SQL
Server实例后,它只具有表jobs的所有权限。
–*/

/*–创建一个只允许特定程序使用的数据库用户

–创建角色 r_test

–创建一个登录 l_test, 密码 pwd, 默认数据库 pubs
EXEC  sp_addlogin  ‘l_test’,’pwd’,’pubs’

USE pubs

    创建一个用户,这个用户只有用我们特定的应用程序登录
    才具有访问数据库的权限,用其他工具登录没有任何权限

代码如下复制代码 EXEC sp_addrole ‘r_test’

–为登录 l_test 在数据库 pubs 中添加安全账户 u_test
EXEC sp_grantdbaccess ‘l_test’,’u_test’

–创建角色 r_test
EXEC sp_addrole ‘r_test’

    在下面的示例中,演示了如何控制登录l_test
    使其登录后只允许访问pubs数据库的titles表
    而对jobs表的访问权限,只允许在某些许可的应用程序中访问。

–授予 r_test 对 jobs 表的所有权限

–授予安全账户 u_test 对 titles 表的 SELECT 权限
GRANT SELECT ON titles TO u_test

–授予 r_test 对 jobs 表的所有权限
GRANT ALL ON jobs TO r_test
–授予角色 r_test 对 titles 表的 SELECT 权限
GRANT SELECT ON titles TO r_test

–邹建 2004.09(引用请保留此信息)–*/

留下评论

网站地图xml地图