Quiero escribir un script para crear un admin
usuario (con abcd
contraseña) en SQL Server Express. También quiero asignar admin
todos los derechos a este usuario .
fuente
Quiero escribir un script para crear un admin
usuario (con abcd
contraseña) en SQL Server Express. También quiero asignar admin
todos los derechos a este usuario .
Según su pregunta, creo que puede estar un poco confundido acerca de la diferencia entre un usuario y un inicio de sesión . Un inicio de sesión es una cuenta en el servidor SQL en su conjunto: alguien que puede iniciar sesión en el servidor y que tiene una contraseña. Un usuario es un inicio de sesión con acceso a una base de datos específica.
Crear un inicio de sesión es fácil y (obviamente) debe hacerse antes de crear una cuenta de usuario para el inicio de sesión en una base de datos específica:
CREATE LOGIN NewAdminName WITH PASSWORD = 'ABCD'
GO
Así es como puede crear un usuario con privilegios db_owner utilizando el inicio de sesión que acaba de declarar:
Use YourDatabase;
GO
IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'NewAdminName')
BEGIN
CREATE USER [NewAdminName] FOR LOGIN [NewAdminName]
EXEC sp_addrolemember N'db_owner', N'NewAdminName'
END;
GO
Ahora, inicios de sesión son un poco más fluidos de lo que hago parecer arriba. Por ejemplo, una cuenta de inicio de sesión se crea automáticamente (en la mayoría de las instalaciones de SQL Server) para la cuenta de administrador de Windows cuando se instala la base de datos. En la mayoría de las situaciones, solo lo uso cuando estoy administrando una base de datos (tiene todos los privilegios).
Sin embargo, si va a acceder a SQL Server desde una aplicación, entonces querrá configurar el servidor para "Modo mixto" (inicios de sesión de Windows y SQL) y crear un inicio de sesión como se muestra arriba. A continuación, "OTORGARÁ" privilegios a ese inicio de sesión SQL en función de lo que se necesite para su aplicación. Consulte aquí para obtener más información.
ACTUALIZACIÓN: Aaron señala el uso de sp_addsrvrolemember para asignar un rol preparado a su cuenta de inicio de sesión. Esta es una buena idea, más rápida y fácil que otorgar privilegios manualmente. Si lo busca en Google, verá muchos enlaces. Sin embargo, aún debe comprender la distinción entre un inicio de sesión y un usuario.
¿Derechos de administrador completos para todo el servidor o una base de datos específica? Creo que los demás respondieron por una base de datos, pero por el servidor:
Es posible que deba omitir los parámetros CHECK_ según la versión de SQL Server Express que esté utilizando (casi siempre es útil incluir esta información en su pregunta).
fuente
Si desea crear un script genérico, puede hacerlo con una instrucción Ejecutar con un Reemplazo con su nombre de usuario y el nombre de la base de datos
fuente
Puedes usar:
Para crear el inicio de sesión (consulte aquí para obtener más detalles).
Entonces es posible que deba usar:
Para crear el usuario asociado con el inicio de sesión para la base de datos específica, también desea otorgarles acceso.
(Vea aquí para más detalles)
También puedes usar:
Para configurar los permisos para los esquemas a los que asignó los usuarios.
(Vea aquí para más detalles)
Otros dos comandos que pueden resultarle útiles son ALTER USER y ALTER LOGIN .
fuente
esta completa ayuda para el uso de la red:
fuente
La semana pasada instalé Microsoft SQL Server 2014 Developer Edition en mi caja de desarrollo e inmediatamente encontré un problema que nunca antes había visto.
He instalado varias versiones de SQL Server innumerables veces y, por lo general, es un procedimiento indoloro. Instale el servidor, ejecute la Consola de administración, así de simple. Sin embargo, después de completar esta instalación, cuando intenté iniciar sesión en el servidor usando SSMS, recibí un error como el siguiente:
Error de inicio de sesión de SQL Server 18456 "Error de inicio de sesión para el usuario ... (Microsoft SQL Server, Error: 18456)" Estoy acostumbrado a ver este error si escribo la contraseña incorrecta al iniciar sesión, pero eso es solo si estoy usando el modo mixto ( Autenticación de Windows y SQL). En este caso, el servidor se configuró solo con autenticación de Windows y la cuenta de usuario era la mía. Todavía no estoy seguro de por qué no agregó a mi usuario al rol SYSADMIN durante la configuración; tal vez perdí un paso y olvidé agregarlo. En cualquier caso, no se perdió toda esperanza.
La forma de solucionar este problema, si no puede iniciar sesión con ninguna otra cuenta en SQL Server, es agregar su inicio de sesión de red a través de una interfaz de línea de comandos. Para que esto funcione, debe ser un administrador en Windows para la PC en la que está conectado.
Detenga el servicio MSSQL. Abra un símbolo del sistema utilizando Ejecutar como administrador. Cambie a la carpeta que contiene el archivo EXE de SQL Server; el valor predeterminado para SQL Server 2014 es "C: \ Archivos de programa \ Microsoft SQL Server \ MSSQL12.MSSQLSERVER \ MSSQL \ Binn". Ejecute el siguiente comando: “sqlservr.exe –m”. Esto iniciará SQL Server en modo de usuario único. Mientras deja este símbolo del sistema abierto, abra otro, repitiendo los pasos 2 y 3. En la segunda ventana del símbolo del sistema, ejecute “SQLCMD –S Server_Name \ Instance_Name” En esta ventana, ejecute las siguientes líneas, presionando Enter después de cada una: 1
Reinicie el servicio MSSQL. ¡Eso es! Ahora debería poder iniciar sesión con su inicio de sesión de red.
fuente