Cambio del permiso para ver todas las bases de datos
Escenarios
Puede utilizar un procedimiento almacenado para conceder el permiso para ver todas las bases de datos de una cuenta especificada. Si se revoca este permiso, solo se pueden ver las bases de datos master y tempdb.
Precauciones
- El procedimiento almacenado solo puede ser ejecutado por el usuario rdsuser o la cuenta de inicio de sesión de la base de datos. La cuenta de inicio de sesión tiene todos los permisos del usuario rdsuser en instancias de RDS for SQL Server. Para obtener más información sobre el procedimiento almacenado para crear una cuenta de inicio de sesión en la base de datos, consulte Creación de una cuenta de base de datos.
- De forma predeterminada, a todos los usuarios se les asigna el rol público y pueden ver todas las bases de datos de la instancia. Sin embargo, no pueden acceder ni editar las bases de datos para las que no tienen permisos.
- Los permisos de visualización de la base de datos de rdsuser y otras cuentas integradas no se pueden cambiar. Para obtener más información sobre las cuentas integradas, consulte Seguridad de la cuenta de 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 acerca de cómo conectarse a una instancia a través del cliente de SQL Server, consulte Conexión a una instancia de base de datos a través de una red pública.
Procedimiento
Ejecute el siguiente comando para configurar el permiso para ver todas las bases de datos (excluidas las bases de datos master y tempdb) para un usuario:
EXEC master.dbo.rds_view_any_database @user, @action ;
- @user: Nombre del usuario.
- @action: Operación a realizar.
- deny: No permita al usuario ver todas las bases de datos.
- revoke: Permita al usuario ver todas las bases de datos.
Ejemplo
- No permita que el usuario testuser vea todas las bases de datos:
EXEC master.dbo.rds_view_any_database 'testuser','deny' ;
- Permita al usuario testuser ver todas las bases de datos:
EXEC master.dbo.rds_view_any_database 'testuser','revoke' ;