删除数据库账号

您可以通过控制台或API接口删除RDS SQL Server实例中的普通账号、高权限账号以及具有SA权限的数据库账号。

账号权限规则

高权限账号管理规则

操作场景

权限行为说明

创建高权限账号

创建时该账号将自动获得已有数据库的db_owner角色权限,无需额外手动授权。

新增数据库

  • 创建账号后新建的数据库,该账号默认无访问权限。

  • 需登录RDS控制台,修改高权限账号的权限范围,授权后方可获得该数据库的db_owner权限。

删除高权限账号

  • 删除操作会彻底移除该账号,及其在所有数据库中的操作权限。

  • 账号无法再用于登录或执行任何数据库操作。

重新创建高权限账号

  • 再次创建高权限账号,无论是否使用原账号名,系统将自动授予其对当前实例中所有已存在数据库db_owner权限。

  • 对此后新创建的数据库,仍需手动修改权限才能获得该数据库的db_owner权限。

普通账号管理规则

操作场景

权限行为说明

创建普通账号

  • 创建时需手动指定授权数据库和对应权限(读写、只读或所有者)。

  • 若未选择任何数据库,则该账号创建成功但无任何数据库访问权限。

  • 账号无任何数据库的权限,必须手动授权

新增数据库

删除普通账号

  • 删除后,该账号的所有数据库访问权限被彻底清除。

  • 无法再通过该账号登录或执行任何数据库操作。

  • 已绑定的应用连接将失败,需及时更新账号密码信息。

重新创建同名普通账号

  • 即使使用与之前相同的账号名称重新创建,也不会自动恢复原有权限。

  • 新建账号为“空白状态”,无任何数据库的权限。

  • 必须手动重新授权数据库并设置权限,才能恢复访问能力。

操作步骤

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

  2. 在左侧导航栏单击账号管理

  3. 单击待删除账号其右侧操作列中的删除

  4. 在弹出的对话框中,单击确定

相关文档

常见问题

RDS SQL Server删除账号报错The database principal owns a schema in the database.如何解决?

问题描述

RDS SQL Server实例账号管理页面中,删除账号时出现如下报错:

The database principal owns a schema in the database.

image

问题原因

当用户被设置为某个Schema的所有者(Owner)时,该用户与Schema间建立了所有权关系。如果直接删除该用户,SQL Server会阻止操作以避免破坏Schema的完整性。在本文场景中,目标账号仍是某些数据库下,某个或某些SchemaOwner,因此无法删除。

解决方案

  1. 通过SSMS连接到SQL Server实例

  2. 查询目标账号是哪些数据库下SchemaOwner,将Owner改成其他用户。

    • 方法一:通过SSMS图形化界面查看并修改SchemaOwner为其他用户

      image

    • 方法二:通过SQL查看并修改schemaOwner的其他用户

      1. 查看目标账号在哪些数据库中是SchemaOwner:

        USE <目标数据库名>;
        GO
        SELECT sis.name AS SchemaName, soo.name AS OwnerName FROM sys.schemas sis JOIN sys.database_principals soo ON sis.principal_id = soo.principal_id where soo.name='待删除用户名'
      2. 更改数据库SchemaOwner为其他用户:

        ALTER AUTHORIZATION ON SCHEMA::<目标Schema的名称> TO <新的Owner用户名>;
  3. 修改成功后返回RDS SQL Server实例账号管理页面中,删除目标账号