2009-03-20 10 views

Respuesta

15
CREATE LOGIN [user] WITH PASSWORD='password', 
     DEFAULT_DATABASE=[your_db], CHECK_POLICY=OFF 
GO 

CREATE USER [user] FOR LOGIN [user] 
EXEC sp_addrolemember N'db_datareader', N'your_db' 
EXEC sp_addrolemember N'db_datawriter', N'your_db' 
GO 

Cuando se apaga CHECK_POLICY=OFF verificación de complejidad de contraseñas, etc.

+0

Estoy de acuerdo. Este método es superior al método sp_addlogin porque puede desactivar la política de cuenta de Windows. – djangofan

-1
USE [MASTER] 


EXEC master.dbo.sp_addlogin @loginame = N'USERNAME', @passwd = 'THEPASS' @defdb = N'master', @deflanguage = N'us_english' 


USE [YOUR_DB] 
    EXEC dbo.sp_grantdbaccess @loginame = N'USERNAME', @name_in_db = N'USERNAME' 
+0

¿Alguna explicación? –

5

A partir de SQL Server 2005, se debe, básicamente, crear usuarios en dos pasos:

  • cree un "inicio de sesión" para su Servidor SQL como un todo
  • crear usuarios para este inicio de sesión en cada base de datos necesaria

Se podría ir haciendo esto, así:

CREATE LOGIN MyNewUser WITH PASSWORD = 'top$secret'; 

Y la "utilización" de su base de datos y crear un usuario para esa entrada:

USE AdventureWorks; 
CREATE USER MyNewUser FOR LOGIN MyNewUser 
1

Primero tendrá que crearlo como usuario y luego configurar la p correcta permisos para el usuario.

  1. que tendrá que asegurarse de que su base de datos está configurado tanto con autenticación de usuario y autenticación de SQL Si se utiliza el Management Studio: haga clic en el servidor, seleccione "Seguridad" asegurarse de que la autenticación del servidor es "SQL Servidor y modo de autenticación de Windows "

  2. en Inicio de sesión de seguridad, haga clic derecho y seleccione" Nuevo inicio de sesión ", seleccione Autenticación SQL, use el nombre de usuario y la contraseña que desee.

    USE [master] 
    GO 
    CREATE LOGIN [ test] WITH PASSWORD=N'test', DEFAULT_DATABASE=[MY_DATABASE], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF 
    GO 
    
  3. en la base de datos que desea, en la seguridad, los usuarios, seleccione Usuario nuevo. Seleccione un nombre de usuario, y adjuntar el nombre de usuario que acaba de crear y seleccione las funciones que desea aplicar a este usuario (es decir db_datareader, db_datawriter):

    USE [MY_DATABASE] 
    GO 
    CREATE USER [myDefaultUser] FOR LOGIN [ test] 
    GO 
    USE [MY_DATABASE] 
    GO 
    EXEC sp_addrolemember N'db_datareader', N'myDefaultUser' 
    GO 
    USE [MY_DATABASE] 
    GO 
    EXEC sp_addrolemember N'db_datawriter', N'myDefaultUser' 
    GO 
    

eso es todo. Ahora puede crear su cadena de conexión usando esta contraseña.

2

Como se indicó, use el botón CREATE LOGIN para crear la capacidad de conectarse a SQL Server como esa cuenta. Luego use CREATE USER dentro de la base de datos para darle a ese inicio de sesión la posibilidad de acceder a la base de datos en cuestión.

Sin embargo, algunos puntos de seguridad basados ​​en algunos de estos comentarios:

  • Si es posible, que desea usar la autenticación de Windows, no es un inicio de sesión basado en SQL Server (que es lo que está haciendo cuando use user/pwd de esta manera). Si está ejecutando desde una computadora en el mismo dominio que SQL Server, puede usar una cuenta de servicio que sea una cuenta de usuario de Windows. Esto garantiza que el dominio sea la única fuente de seguridad.
  • No dijo qué derechos necesitaba el usuario.Evite usar roles db_datareader y db_datawriter siempre que sea posible. Brindan acceso a tablas y vistas IMPLICIT y si alguien está realizando una verificación rápida de permisos en la base de datos, puede que no piense en verificar la membresía en estos roles. Eso significa que está usando sus informes sobre seguridad. Las mejores prácticas dicen que debe crear su propia función de base de datos, asignarle permisos y hacer que el usuario sea miembro de esa función.
  • Siempre que sea posible, use una contraseña segura. Un ejemplo tenía las políticas de contraseña desactivadas. SQL Server usará la política de contraseñas del servidor local (que generalmente se establece en el nivel de dominio). Desea mantener esa política de contraseña segura, si es posible.
0
CREATE LOGIN MyNewUser WITH PASSWORD = 'top$secret' 

USE AdventureWorks 
CREATE USER MyNewUser FOR LOGIN MyNewUser 
GO 
+1

Veo que eres relativamente nuevo aquí. Siempre es una buena práctica examinar las respuestas anteriores antes de publicar las suyas propias. Al hacerlo, asegúrese de que su respuesta tenga alguna información única, ya sea en el enfoque, la claridad o la integridad de su respuesta en comparación con otras. –

Cuestiones relacionadas