sql如何删除创建的用户JAVA_在SQL Server中创建用户角色及授权

/*--示例说明

示例在数据库InsideTSQL2008中创建一个拥有表HR.Employees的所有权限、拥有表Sales.Orders的SELECT权限的角色r_test

随后创建了一个登录l_test,然后在数据库InsideTSQL2008中为登录l_test创建了用户账户u_test

同时将用户账户u_test添加到角色r_test中,使其通过权限继承获取了与角色r_test一样的权限

最后使用DENY语句拒绝了用户账户u_test对表HR.Employees的SELECT权限。

经过这样的处理,使用l_test登录SQL Server实例后,它只具有表Sales.Orders的select权限和对表HR.Employees出select外的所有权限。

--*/

USE InsideTSQL2008

--创建角色 r_test

EXEC sp_addrole "r_test"

--添加登录 l_test,设置密码为pwd,默认数据库为pubs

EXEC sp_addlogin "l_test","a@cd123","InsideTSQL2008"

--为登录 l_test 在数据库 pubs 中添加安全账户 u_test

EXEC sp_grantdbaccess "l_test","u_test"

--添加 u_test 为角色 r_test 的成员

EXEC sp_addrolemember "r_test","u_test"

--用l_test登陆,发现在SSMS中找不到仍和表,因此执行下述两条语句出错。

select * from Sales.Orders

select * from HR.Employees

--授予角色 r_test 对 HR.Employees 表的所有权限

GRANT ALL ON HR.Employees TO r_test

--The ALL permission is deprecated and maintained only for compatibility.

--It DOES NOT imply ALL permissions defined on the entity.

--ALL 权限已不再推荐使用,并且只保留用于兼容性目的。它并不表示对实体定义了 ALL 权限。

--测试可以查询表HR.Employees,但是Sales.Orders无法查询

select * from HR.Employees

--如果要收回权限,可以使用如下语句。(可选择执行)

revoke all on HR.Employees from r_test

--ALL 权限已不再推荐使用,并且只保留用于兼容性目的。它并不表示对实体定义了 ALL 权限。

--授予角色 r_test 对 Sales.Orders 表的 SELECT 权限

GRANT SELECT ON Sales.Orders TO r_test

--用l_test登陆,发现可以查询Sales.Orders和HR.Employees两张表

select * from Sales.Orders

select * from HR.Employees

--拒绝安全账户 u_test 对 HR.Employees 表的 SELECT 权限

DENY SELECT ON HR.Employees TO u_test

--再次执行查询HR.Employees表的语句,提示:拒绝了对对象 "Employees" (数据库 "InsideTSQL2008",架构 "HR")的 SELECT 权限。

select * from HR.Employees

--重新授权

GRANT SELECT ON HR.Employees TO u_test

--再次查询,可以查询出结果。

select * from HR.Employees

USE InsideTSQL2008

--从数据库中删除安全账户,failed

EXEC sp_revokedbaccess "u_test"

--删除角色 r_test,failed

EXEC sp_droprole "r_test"

--删除登录 l_test,success

EXEC sp_droplogin "l_test"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值