本文提供了RDS SQL Server各类账号的权限列表,以便您了解不同账号类型的权限范围。您可以按需调整普通账号和高权限账号的权限。超级权限账号拥有所有数据库的所有权限,不涉及权限修改操作。
账号权限列表
出于安全考虑,RDS未开放所有权限。针对此问题,阿里云利用存储过程对部分未开放权限做了封装,您可通过存储过程执行部分受限的操作。更多信息,请参见存储过程。
RDS控制台支持用户授予SQL Server数据库库级别的权限,如需授予数据库内特定对象(如表)更精细的权限,您可以通过SQL Server中的标准SQL语句实现,详情请参见微软官方教程-授予对象权限。
超级权限账号
-
授权对象:所有数据库
-
权限类型:超级权限账号拥有SQL Server实例上的所有权限。更多详情,请参见微软官方教程-数据库权限。
普通账号/高权限账号
授权对象:用户数据库
|
权限类型 |
角色 |
权限 |
|
所有者 |
|
|
|
只读 |
|
|
|
读写(DML) |
|
|
全局只读账号
-
授权对象:实例内全部用户数据库。
-
权限类型:只读,对新建数据库自动生效。
修改账号权限
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
-
在左侧导航栏中选择账号管理。
-
找到要修改权限的账号,单击修改权限。
-
在修改账号权限页面,变更账号权限设置:
-
修改授权的数据库:选中需要授权的数据库,单击
或
进行权限配置。 -
修改账号权限设置:在已授权数据库区块,将权限设置为:
-
只读:赋予权限对应SQL Server中的
db_datareader数据库角色。 -
读写(DML):赋予权限对应SQL Server中的
db_datawriter和db_datareader数据库角色。 -
所有者:赋予权限对应SQL Server中的
db_owner数据库角色。
有关数据库级别角色的更多详细信息,请参见微软官网教程。
-
-
-
单击确定。
常见问题
-
Q:为什么我的读写(DML)权限账号无法在RDS SQL Server数据库中创建表?
-
A:读写(DML)权限账号对应SQL Server中
db_datareader和db_datawriter标准数据库角色权限,不包含CREATE TABLE操作权限,详情请查看账号权限列表。如果您需要在数据库中建表,可以通过如下方法:-
方法一:通过SQL Server的标准SQL语句实现,详情请参见微软官方教程-授予数据库权限和微软官方教程-数据库级别角色。
-
方法二:在RDS控制台账号管理页面,将该账号的权限修改为所有者,所有者所拥有的权限支持建表,但同时所有者所拥有的操作权限范围较广,因此建议您谨慎操作。具体操作,请参见修改账号权限。
若仅需授予账号
CREATE TABLE权限,推荐您通过方法一实现,该方法安全性相对较高。 -