2009-04-18 40 views
5

Estoy usando SQL Management Studio 2008 Express como una interfaz gráfica para mi instancia local de SQL Server 2008 Express, las cuales tengo localmente solo como una interfaz de prueba y desarrollo para mis proyectos web.¿Cómo obtener "derechos de administrador" en SQL Server Management Studio?

Recientemente he crecido con más confianza en la codificación de SQL, y comencé a utilizar algunas cosas más complicadas de SQL: mi último campo de exploración es el desencadenante. Sin embargo, para mi gran sorpresa, no parece tener derechos de administrador en mi instancia de servidor, lo que significa que no puedo hacer cosas simples como depurar o cambiar los derechos de acceso.

Cuando intento iniciar la depuración recibo un mensaje de permiso denegado, y también lo he visto cuando trato de administrar reglas de permisos para diferentes bases de datos. Sospecho que esto tiene algo que ver con alguna opción que elegí cuando instalé el servidor, pero como ya tengo varias bases de datos configuradas y llenas de datos, no tengo deseos de desinstalar y volver a instalar todo.

¿Hay alguna forma de cambiar qué cuenta de usuario es el administrador maestro de la instancia del servidor? Si no, ¿hay alguna otra manera de obtener derechos de permiso, por ejemplo, depurar mis desencadenantes?

Respuesta

5

Inicie sesión en su computadora como la cuenta de administrador local. De forma predeterminada, debería ser una función sysadmin en MSSQL.

Al usar SSMS, conéctese a su instancia de MSSQL utilizando autenticación integrada. Ahora eres un administrador de sistemas. Como administrador de sistemas, ahora se puede add your normal user account to the sysadmin role:

EXEC sp_addsrvrolemember @loginame = 'PC_OR_DOMAIN\loginname', @rolename = 'sysadmin' 

Si usa SSPI (también conocido como la autenticación integrada, alias no un nombre de usuario y una contraseña diferente al iniciar SSMS), entonces sólo tiene que utilizar su nombre de usuario de Windows como el loginame. Si usa la Autenticación del servidor Sql (también conocido como un nombre de usuario y contraseña), use el nombre de usuario como loginame. Si usa cualquier otro login, también se creará una cuenta.

Sin duda hay una forma de hacerlo dentro de la GUI, pero no tengo un cajero automático práctico para decirles cómo. Creo que está en Seguridad -> Inicio de sesión -> Propiedades y algunas casillas de verificación para las distintas funciones del servidor.

Editar: Enabling the local admin account on Vista Además, si son un administrador local (su cuenta de usuario aparece en la lista del grupo de administradores locales), entonces - by default - usted es un administrador de sistemas. Puede valer la pena verificar dos veces los miembros del rol sysadmin (SQL) y el grupo Administradores locales (Vista).

Edit2: Resulta, SQL 2008 does not add BUILTIN\Administators cualquier más.En ese caso, debe verificar lo que hizo agregar. Eso debería estar disponible a través del nodo Logins. Hay una nota que puede ser locked out de MSSQL Admin si no elige un inicio de sesión sysadmin. Si ese es el caso, volvería a instalar. Puede guardar sus bases de datos deteniendo MSSQL y copiando los archivos * .MDF y * .LDF. Después de la reinstalación, cópielos de nuevo y use sp_attach_db para volver a conectarlos.

+0

¿Cómo inicio sesión como administrador local? Tengo Windows Vista y la única cuenta que conozco es mi cuenta de usuario habitual (AASLOEG \ Tomas, ya que el nombre de mi computadora es AASLOEG ...). Tengo derechos para ejecutar cosas como administrador, pero ejecutar SSMS como administrador no funciona. He intentado hacer lo que esa declaración de SQL debería hacer a través de la GUI, pero me han negado el permiso hasta el momento ... –

+0

Gracias por los enlaces en sus ediciones, aunque no resolvieron mi problema, sí aprendí otras cosas útiles . Terminé upp moviendo los archivos db del directorio mssql, reinstalando y asegurándome de que tanto el grupo de administración local como mi propia cuenta de usuario se agregaran a la función sysadmin. Fue un hazzle, pero funciona ahora. ¡Gracias! –

+0

FYI, esto resolvió mi problema. –

0

Sql Server Configuration Manager.

Eso le permitirá configurar la cuenta de instancia.

Sin embargo, lo que creo que está buscando es cambiar el propietario de la base de datos al usuario con el que se conecta a la base de datos. SI está utilizando SSPI, este será su usuario conectado, o si está usando autenticación SQL, este será el usuario que se conecte dentro de su cadena de conexión.

adicional:

Si está depurando en Windows XP o superior, y usted no es el administrador (local), entonces usted tendrá que ser colocado en el grupo "Usuarios de depuración" en ese sistema. De lo contrario, acceder a la memoria o adjuntar un depurador a un proceso que no le pertenece es un gran no, no.

+0

Gracias por la respuesta! Tengo dos preguntas de seguimiento: 1) Si cambio la cuenta de la instancia a mi propia cuenta de usuario de Windows, ¿eso aún le permitirá a ASP.NET el acceso que necesita para probar mis sitios? 2) ¿Cómo cambio el propietario de la base de datos para ser yo mismo (eso es, de hecho, algo que deseo hacer)? Cuando lo intenté, obtuve el mensaje de permiso denegado. A Capturar 22 ... –

+0

Sí, siempre que el grupo de aplicaciones ASP.Net se esté conectando como su usuario. Si ejecuta ASP.Net desde el depurador, esa instancia se ejecuta como su usuario. En IIS, ese usuario lo establece el "grupo de aplicaciones" que ejecuta su sitio. Puede crear uno personalizado con sus credenciales de usuario, luego configure su sitio web para que se ejecute como ese usuario. Sin embargo, el problema es que aún no obtendrá el acceso que desea a su base de datos, ya que lo establece la base de datos, no la cuenta de instancia de SQL Server. – Spence

+0

¿Tiene privilegios administrativos? Si lo hace, chequee qué cuenta se está conectando al estudio de administración. – Spence

Cuestiones relacionadas