账号权限列表
出于安全考虑,RDS未开放所有权限。针对此问题,阿里云利用存储过程对部分未开放权限做了封装,您可通过存储过程执行部分受限的操作。更多信息,请参见存储过程。
说明 RDS控制台支持用户授予SQL Server数据库库级别的权限,如需授予数据库内特定对象(如表)更精细的权限,您可以通过SQL Server中的标准SQL语句实现,详情请参见微软官方教程-授予对象权限。
普通账号/高权限账号
授权对象:用户数据库
权限类型 | 角色 | 权限 |
所有者 | Server级别角色 public processadmin setupadmin
Database级别角色
| Server级别权限 CONNECT SQL ALTER ANY LOGIN ALTER ANY LINKED SERVER ALTER ANY CONNECTION ALTER TRACE VIEW ANY DATABASE VIEW SERVER STATE ALTER SERVER STATE
Database级别权限 CREATE TABLE CREATE VIEW CREATE PROCEDURE CREATE FUNCTION CREATE RULE CREATE DEFAULT CREATE TYPE CREATE ASSEMBLY CREATE XML SCHEMA COLLECTION CREATE SCHEMA CREATE SYNONYM CREATE AGGREGATE CREATE ROLE CREATE MESSAGE TYPE CREATE SERVICE CREATE CONTRACT CREATE REMOTE SERVICE BINDING CREATE ROUTE CREATE QUEUE CREATE SYMMETRIC KEY CREATE ASYMMETRIC KEY CREATE FULLTEXT CATALOG CREATE CERTIFICATE CREATE DATABASE DDL EVENT NOTIFICATION CONNECT CONNECT REPLICATION CHECKPOINT SUBSCRIBE QUERY NOTIFICATIONS AUTHENTICATE SHOWPLAN ALTER ANY USER ALTER ANY ROLE ALTER ANY APPLICATION ROLE ALTER ANY COLUMN ENCRYPTION KEY ALTER ANY COLUMN MASTER KEY ALTER ANY SCHEMA ALTER ANY ASSEMBLY ALTER ANY DATABASE SCOPED CONFIGURATION ALTER ANY DATASPACE ALTER ANY EXTERNAL DATA SOURCE ALTER ANY EXTERNAL FILE FORMAT ALTER ANY MESSAGE TYPE ALTER ANY CONTRACT ALTER ANY SERVICE ALTER ANY REMOTE SERVICE BINDING ALTER ANY ROUTE ALTER ANY FULLTEXT CATALOG ALTER ANY SYMMETRIC KEY ALTER ANY ASYMMETRIC KEY ALTER ANY CERTIFICATE ALTER ANY SECURITY POLICY SELECT INSERT UPDATE DELETE REFERENCES EXECUTE ALTER ANY DATABASE DDL TRIGGER ALTER ANY DATABASE EVENT NOTIFICATION ALTER ANY DATABASE AUDIT ALTER ANY DATABASE EVENT SESSION KILL DATABASE CONNECTION VIEW ANY COLUMN ENCRYPTION KEY DEFINITION VIEW ANY COLUMN MASTER KEY DEFINITION VIEW DATABASE STATE VIEW DEFINITION TAKE OWNERSHIP ALTER ALTER ANY MASK UNMASK EXECUTE ANY EXTERNAL SCRIPT CONTROL
|
只读 | Server级别角色 public processadmin setupadmin
Database级别角色
| Server级别权限 CONNECT SQL ALTER ANY LOGIN ALTER ANY LINKED SERVER ALTER ANY CONNECTION ALTER TRACE VIEW ANY DATABASE VIEW SERVER STATE ALTER SERVER STATE
|
读写(DML) | Server级别角色 public processadmin setupadmin
Database级别角色 public db_datareader db_datawriter
| Server级别权限 CONNECT SQL ALTER ANY LOGIN ALTER ANY LINKED SERVER ALTER ANY CONNECTION ALTER TRACE VIEW ANY DATABASE VIEW SERVER STATE ALTER SERVER STATE
|
修改账号权限
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏中选择账号管理。
找到要修改权限的账号,单击修改权限。
![image.png](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/8697772961/p709990.png)
在修改账号权限页面,变更账号权限设置:
修改授权的数据库:选中需要授权的数据库,单击
或
进行权限配置。
修改账号权限设置:在已授权数据库区块,将权限设置为:
只读:赋予权限对应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
操作权限,详情请查看账号权限列表。如果您需要在数据库中建表,可以通过如下方法:
若仅需授予账号CREATE TABLE
权限,推荐您通过方法一实现,该方法安全性相对较高。