SQL Server 2008: ¿cómo puedo otorgar privilegios a un nombre de usuario?


Necesito poder establecer una conexión ODBC a través de la autenticación de SQL Server.

En SSMS ¿cómo concedo permiso para que un usuario pueda tener TODOS los DERECHOS en una base de datos específica?

¿Hay alguna forma de hacer esto gráficamente con los SSM?

Author: l--'''---------'''''', 2010-10-22

3 answers

Si quieres darle a tu usuario todos los permisos de lectura, puedes usar:

EXEC sp_addrolemember N'db_datareader', N'your-user-name'

Que agrega el rol predeterminado db_datareader (permiso de lectura en todas las tablas) a ese usuario.

También hay un rol db_datawriter - que le da a su usuario todos los permisos de ESCRITURA (INSERTAR, ACTUALIZAR, ELIMINAR) en todas las tablas:

EXEC sp_addrolemember N'db_datawriter', N'your-user-name'

Si necesita ser más granular, puede usar el comando GRANT:

GRANT SELECT, INSERT, UPDATE ON dbo.YourTable TO YourUserName
GRANT SELECT, INSERT ON dbo.YourTable2 TO YourUserName
GRANT SELECT, DELETE ON dbo.YourTable3 TO YourUserName

Y así sucesivamente - usted puede dar granularmente SELECT, INSERT, UPDATE, DELETE permission on specific tabla.

Todo esto está muy bien documentado en el MSDN Books Online para SQL Server.

Y sí, también puede hacerlo gráficamente: en SSMS, vaya a su base de datos, luego Security > Users, haga clic con el botón derecho en el usuario al que desea dar permisos, luego Properties adn en la parte inferior verá "Membresías de roles de base de datos" donde puede agregar el usuario a los roles de base de datos.

texto alt

 129
Author: marc_s,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-10-22 16:16:12

Si realmente quieres que tengan TODOS los derechos:

use YourDatabase
go
exec sp_addrolemember 'db_owner', 'UserName'
go
 56
Author: Joe Stefanelli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-10-22 16:01:02

Como el siguiente. Hará que la base de datos del usuario sea propietaria.

EXEC sp_addrolemember N'db_owner', N'USerNAme'
 17
Author: SQLMenace,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-17 12:07:33