SQL Server 数据库之角色、管理权限

1. 角色

1.1 概述

一个数据库可能会有许多个用户,若单独给每个用户设置管理权限,会浪费很多时间;角色就是集中管理权限的一种机制,它能将不同权限的用户分类组合,便于数据库管理员管理;

1.2 预定义角色

SQL Server 中有两类预定义的角色,系统管理预定义角色数据库预定义角色,这两类预定义角色将系统管理和数据库管理的权限做了分解,方便数据库管理员分配使用;
当中,较为特殊的是 public 角色,它的权限是所有数据库用户的默认权限;
每个用户都有 public 角色,不需要也不能够将用户指派给 public 角色,因为默认情况下所有用户都自动属于该角色,同样,用户也不能取消角色的public 角色或直接删除public 角色

1.3 角色的操作

  1. 定义角色的SQL命令为 CREATE ROLE,语法格式如下:
CREATE ROLE <角色>[ <拥有者>]

<角色>是定义的角色的名称,命名规则跟数据表名类似;AUTHORIZATION表示指定该角色的拥有者,可以为用户或角色,但需要一定的权限,省略时表示属于创建该角色的用户;
例子 1:创建用户 teacher

create role teacher

20220210

  1. 每个数据库用户都能担当一个或多个角色,指定角色的SQL语法格式如下:
sp_addrolemember '角色名'.'用户名'

若一个用户不再担当某角色,可取消该用户的角色资格,取消角色资格的SQL语法格式如下:

sp_droprolemember '角色名'.'用户名'
  1. 修改角色名的SQL命令为ALTER ROLE,语法格式如下:
ALTER ROLE <角色名> WITH NAME=新名称

例子 2:将角色 teacher 改为 Teacher;

alter role teacher with name=Teacher

20220210

  1. 删除角色的SQL命令为DROP ROLE,语法格式如下:
DROP ROLE <角色名>

注意: 不能删除仍然带有用户的角色,在删除角色前解除其与所有成员的关系;

2. 管理权限

2.1 概述

权限是用户对数据库及其对象的使用权;为了数据库的安全,需要对用户的操作权限进行控制管理,系统管理员或数据库管理员能按层次定义角色及其权限,为不同级别的用户指定不同的角色,从而分层次管理数据;
权限可分为系统权限和对象权限,系统权限表示用户对数据库的操作权限,如下表:
20220210
对象权限表示系统权限授予用户对特定数据库中的表、视图等操作权限,如下表:
20220210

2.2 授予权限

授予权限的SQL命令为 GRANT,语法格式如下:

GRANT <权限>
ON <对象名>
TO <用户名或角色名>
[WITH GRANT OPTION]

[WITH GRANT OPTION] 表示获得用户权限的用户能将该权限赋予其他用户;
例子 3: 授予用 Tim 查询数据表 B 及修改 ID 的权限

grant select,update(ID)
on B
to Tim

20220210

2.3 收回权限

收回权限的SQL命令为REVOKE,语法格式如下:

REVOKE <权限>
ON <对象名>
FROM <用户名或角色名>

例子 4:收回用户 Tim 在数据表 B中修改 ID 的权限

revoke select,update(ID)
on B
to Tim

20220210

  • 12
    点赞
  • 123
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值