Concesión de permisos de base de datos a subcuentas
Escenarios
Puede utilizar un procedimiento almacenado para conceder permisos de una base de datos personalizada a una subcuenta especificada creada por el usuario rdsuser para que la base de datos sea visible para la subcuenta. Si los permisos de base de datos no se conceden a la subcuenta, la subcuenta no puede ver ni realizar operaciones en la base de datos.
Prerrequisitos
Se ha conectado una instancia de base de datos de RDS for SQL Server. Para obtener más información sobre cómo conectarse a una instancia de base de datos, consulte Conexión a una instancia de base de datos mediante una red pública.
Restricciones
- No puede utilizar el procedimiento almacenado para conceder permisos de base de datos del sistema a las subcuentas. Si intenta conceder permisos de base de datos del sistema a una subcuenta, el sistema muestra la siguiente información:
Error DatabaseName. Please can not include in ('msdb','master','model','tempdb','rdsadmin') .
- No puede utilizar el procedimiento almacenado para conceder permisos de base de datos a los administradores del sistema. Si intenta conceder permisos de base de datos a un administrador del sistema, el sistema muestra la siguiente información:
Error Login. Please can not include in ('rdsadmin','rdsmirror','rdsbackup','rdsuser') .
- Si ya se ha especificado una cuenta en una base de datos, no puede utilizar el procedimiento almacenado para conceder permisos a la base de datos. De lo contrario, el sistema muestra la siguiente información:
The proposed new database owner is already a user or aliased in the database.
En este caso, puede eliminar la subcuenta de la base de datos primero como usuario rdsuser y, a continuación, ejecutar el procedimiento almacenado para conceder permisos.
- Si una cuenta tiene el permiso de crear cualquier base de datos, el procedimiento almacenado no tiene efecto para esta cuenta.
Procedimiento
Ejecute el siguiente comando para conceder permisos de base de datos a una subcuenta:
EXEC rdsadmin.dbo.rds_AUTHORIZATION_DatabaseForLogin '@DBName', '@Login';
- @DBName: indica la base de datos para la que se deben conceder los permisos.
- @Login: indica la cuenta para la que se van a conceder los permisos.
Por ejemplo, para conceder permisos de la base de datos testDB_1 a la cuenta user_1, ejecute el siguiente comando:
EXEC rdsadmin.dbo.rds_AUTHORIZATION_DatabaseForLogin 'testDB_1', 'user_1';
Después de conceder los permisos, el usuario user_1 puede ver y realizar operaciones en la base de datos testDB_1. Para las bases de datos cuyos permisos no se conceden, el usuario user_1 no puede ver ni realizar operaciones sobre ellas.