no se puede agregar un usuario a la función sysadmin en SQL Server

9

Estoy usando SQL Server 2008 Management Studio. La cuenta de inicio de sesión actual pertenece al grupo de administradores locales de la máquina. Estoy usando el modo de seguridad integrada de Windows en SQL Server 2008.

Mi problema es que, después de iniciar sesión en SQL Server Management Studio, selecciono mi nombre de inicio de sesión en Seguridad / Inicios de sesión, luego selecciono la pestaña Roles del servidor, luego selecciono el último elemento: sysadmin para hacerme pertenecer a este grupo / rol, pero dice que yo No tengo suficiente permiso. ¿Alguna idea de lo que está mal? Creo que el administrador local debería poder hacer cualquier cosa. :-)

George2
fuente
esto es lo que Microsoft proporciona sobre este problema: msdn.microsoft.com/en-us/library/dd207004.aspx, puedo recomendar este script: archive.msdn.microsoft.com/addselftosqlsysadmin/Release/…

Respuestas:

6

El inicio de sesión de la sesión en la que intenta establecer permisos debe tener permisos.

Entonces, ¿el inicio de sesión que está utilizando es un administrador local? Esto significa que el grupo de administración local no tiene suficientes derechos.

La GUI ejecutará esto también sp_addsrvrolemember . Aunque esto dice

Requiere pertenencia a la función a la que se agrega el nuevo miembro.

Por lo tanto, el grupo de administración local no es miembro de sysadmin.

Editar:

Para resolver: use un inicio de sesión que tenga derechos. puedes encontrar uno usando sp_helpsrvrolemember

gbn
fuente
¿Cuál es tu consejo para resolver mi problema?
George2
¡No estoy seguro si hay soluciones o soluciones sin reinstalar todo SQL Server 2008 nuevamente! :-(
George2
"Utilice un inicio de sesión que tenga derechos": ¿cómo puedo obtener una lista de inicios de sesión que tenga permiso suficiente?
George2
Gracias, encuentro que el único miembro que figura en EXEC sp_helpsrvrolemember 'sysadmin' se llama sa, ¿es un usuario de Windows? No puedo encontrar a ese usuario en la lista de usuarios de Windows. ¿Algunas ideas?
George2
1
Es un inicio de sesión SQL reservado, no un usuario de Windows. En mi instalación de SQL 2008 de prueba, aparece la cuenta que instaló SQL Server.
gbn
4

En un buen artículo, Solución de problemas: conexión a SQL Server cuando los administradores del sistema están bloqueados , el autor nos dice que todo lo que tenemos que hacer para recuperar el control de nuestro servidor SQL es

"Inicie la instancia de SQL Server en modo de usuario único utilizando las opciones -m o -f. Cualquier miembro del grupo de administradores locales de la computadora puede conectarse a la instancia de SQL Server como miembro de la función fija de servidor sysadmin. "

Desafortunadamente, lo que significa comenzar en modo de usuario único no es una cuestión intuitiva. Además, al menos en mi experiencia, la membresía en el grupo de administradores locales de mi computadora no otorgó el estado de administrador del sistema a mi cuenta de "usuario".

Esta historia había comenzado cuando se trataba un problema de membresía en mi dominio por un servidor que no era DC (como consecuencia de cambiar de ISP). Reconstruí DC en Windows Server 2008 R2 a partir de 2008. Esto solucionó un par de problemas menores pero no solucionó La cuestión de la membresía del servidor errante. Tomó una solución sugerida en ServerFault para lograr eso (en mi caso, fue una cuestión de restablecer winsock y tcpip).

SQL Server 2008 reside en ese segundo servidor, ahora miembro del dominio. Aquí está el problema. Como alguien señala en ServerFault, es común presionar "permitir que el usuario actual se convierta en administrador del sistema" al instalar Server 2008. Común también para no considerar a nadie más. Debido a que esa identidad de usuario único era un miembro de dominio de un dominio que ya no existía, nadie tenía permiso para administrar SQL Server.

Me conecté como el administrador del servidor local que existía cuando se instaló SQL Server, pero aunque esto me permitió acceder a Management Studio, descubrí rápidamente que BUILTIN \ Administrators solo tenía la función de servidor "público".

Después de mucha investigación y experimentación, me encontré con un artículo que brinda los detalles del inicio de sesión de un solo usuario http://technet.microsoft.com/en-us/library/ms180965.aspx :

C:\>cd \Program Files\Microsoft SQL Server\MSSQL10_50.1\MSSQL\Binn 
C:\...>sqlservr.exe -m

Para prepararse para dar este paso, debe cerrar Sql Server (que se ejecuta de manera predeterminada en la mayoría de los casos). Utilice el Administrador de configuración de SQL para detener el "Servidor SQL".

Luego, en el símbolo del sistema, navegue a la ubicación del archivo de programa (o equivalente en su máquina) y emita el comando "sqlservr.exe -m". Si ve una secuencia de actividad registrada en su símbolo del sistema, está teniendo éxito. Si no se inicia, es probable que ya tenga SQL Server ejecutándose. Apágalo.

Permita que la instancia de usuario único adjunte sus bases de datos. Cuando la actividad de registro haya cesado, abra Management Studio. Estará automáticamente en modo de usuario único y, por lo tanto, cualquier cuenta que represente será un administrador de sistemas. Use ese poder para ajustar los inicios de sesión de seguridad y las funciones del servidor.

En mi caso, tuve que recrear las cuentas de dominio en el nuevo dominio, luego eliminar sus homónimos en SQL Server y reconstruirlos (debido a la situación SID / GUID), reasignando permisos a bases de datos particulares según sea necesario.

Michael Broschat
fuente
También hay otra forma de establecer parámetros: abrir servicio, administrador, seleccionar el servicio y luego propiedades desde el menú contextual. En la pestaña general hay una edición de "Parámetros de inicio". Escriba los parámetros necesarios allí. Luego, inicie el servicio usando el botón de inicio en esa página , los parámetros establecidos allí no son permanentes y válidos solo cuando el servicio se inicia desde el cuadro de diálogo Propiedades.
ldsandon
3

SQL Server 2008 ya no agrega BUILTIN \ Administrators como miembros de la función fija de servidor sysadmin

Eso es cierto, PERO en ese caso puede recuperarse de esa situación al iniciar el Servicio SQL Server en modo de usuario único (modo de emergencia), y cualquier administrador local podrá iniciar sesión.

Ver MSDN .

abatishchev
fuente
2

Por defecto, SQL agrega el grupo BUILTIN \ Administrators a la función sysadmin, lo que significa que cualquier administrador local de NT es automáticamente un administrador de sistemas SQL. En Vista, debido al UAC, debe ejecutarse en modo 'como administrador' para beneficiarse de este privilegio.

  • Si está en Vista, ejecute la herramienta cliente (SSMS) 'como administrador' y luego intente agregarse como administrador de sistemas.
  • Si el grupo BUILTIN \ Administradores se eliminó accidentalmente de la función sysadmin, debe iniciar sesión con otro inicio de sesión de sysadmin. Si no hay otro inicio de sesión de sysadmin, debe iniciar sesión con autenticación SQL como sa y utilizar la contraseña sa que se configuró durante la configuración. Una vez que haya iniciado sesión como miembro de sysadmin, ad BUILTIN \ Admisnitrators volverá a la función sysadmin. Si los inicios de sesión de SQL están deshabilitados, entonces felicitaciones, simplemente se bloquea la instalación de SQL.
  • Si el grupo BUILTIN \ Administrators se eliminó intencionalmente de la función sysadmin (según KB932881 ), entonces está intentando piratear un sistema para el que no tiene permiso.
Remus Rusanu
fuente
Hola Remus, estoy confundido de que durante el proceso de instalación, no configuro ninguna contraseña para sa, ¿hay una contraseña predeterminada?
George2
Otra confusión es, al ejecutar el procedimiento de tienda sp_helpsrvrolemember para encontrar todos los usuarios del rol sysadmin, solo sa aparece en la lista, no hay otros usuarios del grupo administrador local de la máquina, ¿alguna idea de por qué?
George2
No hay una contraseña predeterminada para sa. La contraseña de sa se establece durante la configuración, si la autenticación mixta está habilitada. Tendrá que pedirle al administrador de su base de datos que le otorgue acceso si lo necesita.
Remus Rusanu
"Si los inicios de sesión de SQL están deshabilitados, entonces felicidades, simplemente se bloquea la instalación de SQL". En ese caso, vea la respuesta de Jordi a continuación para iniciar SQL Server en modo de usuario único.
Michiel van Oosterhout
1

De forma predeterminada, SQL Server 2008 ya no agrega BUILTIN \ Administrators como miembros de la función fija de servidor sysadmin. Cuando pasa por el instalador, le pregunta qué cuenta o cuentas deberían tener derechos de administrador de sistemas. Hay un botón que básicamente dice "hazme un administrador de sistemas" que agregará la cuenta del usuario que realiza la instalación como administrador de sistemas.

Si no agregaron ningún otro usuario como administrador del sistema, solo ese usuario es actualmente un administrador del sistema. Deberá hacer que esa persona inicie sesión en SQL Server y otorgue los derechos de administrador de sistemas de DBA.

mrdenny
fuente
0

Reflexioné sobre el mismo problema después de una nueva instalación hasta que registré el servidor, en SQL Server 2008, luego todo salió como debería


fuente