2010-10-22 14 views

Respuesta

121

Si usted quiere dar a su usuario toda permisos de lectura, se puede utilizar:

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

que añade la función predeterminada db_datareader (permiso de lectura en todas las tablas) a ese usuario.

Hay también un papel db_datawriter - que da a su usuario todos los permisos de escritura (INSERT, UPDATE, DELETE) en todas las tablas:

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

Si necesita ser más granular, puede utilizar 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 - se puede dar de forma granular SELECT, INSERT, UPDATE, DELETE permisos en las tablas específicas.

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

Y sí, también puede hacerlo de forma gráfica - en SSMS, accede a la base de datos, a continuación, Security > Users, haga clic en ese usuario desea dar permisos para, a continuación, Properties del ADN en la parte inferior se ve "la pertenencia a funciones de base de datos "donde puedes agregar los roles de usuario a db.

alt text

+0

¿qué tal escribir también?>? –

+0

de alguna manera no tengo el nodo de Usuarios en el árbol de Seguridad en SSMS, solo inicios de sesión y credenciales, además de esto, para que sp_addrolemember funcione, el usuario tiene que estar mapeado en la base de datos en cuestión, de lo contrario "el usuario ... no no existe en la base de datos "se da el error (http://stackoverflow.com/questions/7232559/mssql-giving-loginsusers-db-owner-access-to-database - ver los comentarios a la respuesta aceptada) - pude al usuario -db mapeo a través de Propiedades del objeto de inicio de sesión del usuario –

+0

@marc_s, ¿Cómo otorgar permiso relacionado con una tabla particular usando SSMS? – CAD

56

Si realmente queremos que tengan todos los derechos:

use YourDatabase 
go 
exec sp_addrolemember 'db_owner', 'UserName' 
go 
17

como la siguiente. Hará que el propietario de la base de datos del usuario.

EXEC sp_addrolemember N'db_owner', N'USerNAme' 
Cuestiones relacionadas