2011-08-29 23 views
17

Tenemos una base de datos de prueba y algunos inicios de sesión de prueba a los que nos gustaría otorgar acceso a db_owner a través de un script. Por lo general, deberíamos ingresar a los inicios de sesión y hacer clic con el botón secundario en el nombre de usuario e ir a la asignación del usuario, seleccionar la base de datos para asociarla y darle acceso al propietario y hacer clic en OK.SQL Server dando inicio de sesión (usuarios) acceso de db_owner a la base de datos

Respuesta

39

Es necesario hacer dos cosas, tanto que se ejecuta en el contexto de la base de datos de destino (es decir, ejecutar USE (database) primero) :

  1. añadir que el usuario como un inicio de sesión a la base de datos: CREATE USER [LoginName] FOR LOGIN [LoginName]
  2. Añadir ese usuario a la función: EXEC sp_addrolemember N'db_owner', N'LoginName'

En general, si usted tiene SQL Server Management Studio 2005 o superior, se puede entrar en la interfaz de usuario para una operación, rellene el cuadro de diálogo (en este caso, asignando al usuario a la base de datos & agregando roles), y luego haz clic en el botón "Script" en la parte superior. En lugar de ejecutar el comando, escribirá un script para la acción en una nueva ventana de consulta.

+1

¿Qué pasa si el usuario ya existe solo necesita ser mapeado a la base de datos primero y luego ejecutar el sp_addrolemember SP. Se puede hacer esto? – user516883

+0

La asignación a la base de datos * es * la primera consulta. Asume que ya se ha creado un inicio de sesión (nombre de usuario/contraseña) en el servidor. Puede verificar si ya han sido mapeados mirando 'sys.database_principals' en la base de datos de destino. – Tadmas

+0

Gracias. exactamente lo que necesitaba – user516883

7

Uso sp_addrolemember

sp_addrolemember EXEC 'db_owner', 'MyUser'

+1

he intentado que uno y dice Msg 15410, nivel 11, estado 1, sp_addrolemember procedimiento, línea 75 usuario o función 'QA-Tester1' no existe en esta base de datos. – user516883

Cuestiones relacionadas