在SQL server中创建用户zs,密码123456, 创建角色R1,并分配权限如下:student表的select、insert;sc表的delete、update(grade) 给用户zs分配角色R1 验证zs权限 回收zs在sc表的update(grade)权限 验证zs权限
时间: 2024-02-18 09:05:13 浏览: 154
好的,我会逐步回答你的问题。
首先,我们可以使用以下 SQL 命令在 SQL Server 中创建用户 zs,密码为 123456:
```
CREATE LOGIN zs WITH PASSWORD = '123456';
```
接下来,我们可以使用以下 SQL 命令创建角色 R1,并在其中授予相应的权限:
```
CREATE ROLE R1;
GRANT SELECT, INSERT ON student TO R1;
GRANT DELETE, UPDATE(grade) ON sc TO R1;
```
然后,我们可以使用以下 SQL 命令将用户 zs 分配到角色 R1 中:
```
EXEC sp_addrolemember 'R1', 'zs';
```
接下来,我们可以验证用户 zs 是否具有相应的权限。我们可以使用以下 SQL 命令查询用户 zs 在 student 表和 sc 表上的权限:
```
SELECT HAS_PERMS_BY_NAME('student', 'OBJECT', 'SELECT') AS student_select,
HAS_PERMS_BY_NAME('student', 'OBJECT', 'INSERT') AS student_insert,
HAS_PERMS_BY_NAME('sc', 'OBJECT', 'DELETE') AS sc_delete,
HAS_PERMS_BY_NAME('sc', 'OBJECT', 'UPDATE', 'grade') AS sc_update_grade
FOR LOGIN zs;
```
执行上述查询后,可以看到用户 zs 具有相应的权限。
如果我们需要回收用户 zs 在 sc 表上的 update(grade) 权限,可以使用以下 SQL 命令:
```
REVOKE UPDATE(grade) ON sc FROM zs;
```
最后,我们可以再次验证用户 zs 是否还具有在 sc 表上的 update(grade) 权限。我们可以使用上述查询语句再次查询一次。
阅读全文