修改账号权限

本文提供了RDS SQL Server各类账号的权限列表,以便您了解不同账号类型的权限范围。您可以按需调整普通账号和高权限账号的权限。超级权限账号拥有所有数据库的所有权限,不涉及权限修改操作。

账号权限列表

出于安全考虑,RDS未开放所有权限。针对此问题,阿里云利用存储过程对部分未开放权限做了封装,您可通过存储过程执行部分受限的操作。更多信息,请参见存储过程

说明

RDS控制台支持用户授予SQL Server数据库库级别的权限,如需授予数据库内特定对象(如表)更精细的权限,您可以通过SQL Server中的标准SQL语句实现,详情请参见微软官方教程-授予对象权限

超级权限账号

普通账号/高权限账号

授权对象:用户数据库

权限类型

角色

权限

所有者

  • Server级别角色

    • public

    • processadmin

    • setupadmin

  • Database级别角色

    • public

    • db_owner

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级别角色

    • public

    • db_datareader

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级别权限

  • CONNECT

  • SHOWPLAN

  • SELECT

  • KILL DATABASE CONNECTION

  • VIEW ANY COLUMN ENCRYPTION KEY DEFINITION

  • VIEW ANY COLUMN MASTER KEY DEFINITION

  • VIEW DATABASE 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

Database级别权限

  • CONNECT

  • SHOWPLAN

  • SELECT

  • INSERT

  • UPDATE

  • DELETE

  • KILL DATABASE CONNECTION

  • VIEW ANY COLUMN ENCRYPTION KEY DEFINITION

  • VIEW ANY COLUMN MASTER KEY DEFINITION

  • VIEW DATABASE STATE

修改账号权限

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  2. 在左侧导航栏中选择账号管理

  3. 找到要修改权限的账号,单击修改权限

    image.png

  4. 修改账号权限页面,变更账号权限设置:

    • 修改授权的数据库:选中需要授权的数据库,单击image.pngimage.png进行权限配置。

    • 修改账号权限设置:在已授权数据库区块,将权限设置为:

      • 只读:赋予权限对应SQL Server中的db_datareader数据库角色。

      • 读写(DML):赋予权限对应SQL Server中的db_datawriterdb_datareader数据库角色。

      • 所有者:赋予权限对应SQL Server中的db_owner数据库角色。

      有关数据库级别角色的更多详细信息,请参见微软官网教程

  5. 单击确定

常见问题

  • Q:为什么我的读写(DML)权限账号无法在RDS SQL Server数据库中创建表?

  • A:读写(DML)权限账号对应SQL Serverdb_datareaderdb_datawriter标准数据库角色权限,不包含CREATE TABLE操作权限,详情请查看账号权限列表。如果您需要在数据库中建表,可以通过如下方法:

    若仅需授予账号CREATE TABLE权限,推荐您通过方法一实现,该方法安全性相对较高。