2008-10-02 9 views

Respuesta

95

Me di cuenta. Dentro de SQL Management Studio tiene que hacer clic derecho en la base de datos -> Propiedades -> Archivos -> campo Propietario. Cambie este campo al nombre de usuario/cuenta que desea asociar con el nombre de usuario "dbo" para esa base de datos. Por favor, tenga en cuenta que el nombre de usuario/cuenta de que ha seleccionado ya debe estar configurado en el servidor SQL en Seguridad -> Conexiones

+8

Necesitaba saber esto, 2 años después, gracias. – Hogan

+0

¡Es un gran hallazgo! 1 – Sprintstar

+15

O hacer el mismo cambio a través de código: utilizar someDB; ir; sp_changedbowner ejecutivo –

0

Este es un inicio de sesión de Windows, no una sesión de SQL Server, por lo que no se puede 'cambiar' el nombre de inicio de sesión ya que está vinculada a la cuenta de usuario en Active Directory.

crear un nuevo servidor de sesión (Windows) asignada al nuevo usuario de Windows (y eliminar el anterior si es necesario). Luego, en la seguridad de inicio de sesión> Asignación de usuarios, el permiso de iniciar sesión en la base de datos apropiada como usuario dbo '(o asignar a la función db_owner)

+1

Sospecho que no está entendiendo correctamente el modelo de seguridad de SQL Server. La * instancia de servidor completa * tiene ** inicios de sesión ** asociados con el servidor. Estos pueden ser inicios de sesión de SQL o Windows. Cada base de datos en el servidor tiene una cantidad de ** usuarios ** con permisos para acceder a esa base de datos. La base de datos ** usuario ** está asociada a un ** inicio de sesión ** SQL que generalmente (aunque no es obligatorio) es el mismo. ** dbo ** es un * usuario especial * en cada base de datos. OP no está intentando hacerlo y un nuevo usuario arbitrario con derechos db_owner para la base de datos: intenta asociar un inicio de sesión de servidor diferente con el usuario estándar ** dbo **. –

5

Si usted está tratando de volver a asignar un inicio de sesión de un usuario db puede utilizar sp_change_user_login

exec sp_change_user_login 'Update_One', 'user', 'login'

+1

El sproc parece ser 'sp_change_users_login' (es decir, _users_). FYI, el BOL también dice que está en desuso y ALTER USER debería usarse en su lugar en el futuro. –

+1

Aunque por lo general esto funcionaría, el procedimiento almacenado bastante específicamente ** ** rechaza un intento de alterar el ** ** dbo usuario de esta manera. –

0

PantomTypist da una buena respuesta por medio de la interfaz gráfica de usuario. Para lograr el mismo resultado con TSQL, puede usar este código:

USE [My_Database_Name] 
GO 
EXEC dbo.sp_changedbowner @loginame = N'domain\abc', @map = false 
GO 
Cuestiones relacionadas