sp_changedbowner (Transact-SQL)

Cambia el propietario de la base de datos actual.

[!NOTA]

Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. Utilice ALTER AUTHORIZATION en su lugar.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

sp_changedbowner [ @loginame = ] 'login'
          [ , [ @map = ] remap_alias_flag ]

Argumentos

  • [ @loginame = ] 'login'
    Es el identificador de inicio de sesión del nuevo propietario de la base de datos actual. login es de tipo sysname y no tiene valor predeterminado. login debe ser un inicio de sesión de SQL Server existente o un usuario de Windows. login no puede convertirse en el propietario de la base de datos actual si ya tiene acceso a la base de datos mediante una cuenta de seguridad de usuario existente dentro de la base de datos. Para evitar esto, quite antes el usuario de la base de datos actual.

  • [ @map = ] remap_alias_flag
    El parámetro remap_alias_flag ha quedado obsoleto porque los alias de inicio de sesión se han quitado de SQL Server. El uso del parámetro remap_alias_flag no produce errores pero no tiene ningún efecto.

Valores de código de retorno

0 (correcto) o 1 (error)

Notas

Después de ejecutar sp_changedbowner, el nuevo propietario se conoce como el usuario dbo de la base de datos. El dbo disfruta implícitamente de permisos para realizar todas las actividades de la base de datos.

No es posible cambiar el propietario de las bases de datos del sistema master, model o tempdb.

Para ver una lista de los valores válidos de login, ejecute el procedimiento almacenado sp_helplogins.

Si se ejecuta sp_changedbowner solamente con el parámetro login, se cambiará la propiedad de la base de datos a login.

Puede cambiar el propietario de cualquier elemento protegible usando la instrucción ALTER AUTHORIZATION. Para obtener más información, vea ALTER AUTHORIZATION (Transact-SQL).

Permisos

Requiere permiso TAKE OWNERSHIP en la base de datos. Si el nuevo propietario tiene un usuario correspondiente en la base de datos, requiere el permiso IMPERSONATE en el inicio de sesión, en caso contrario, requiere el permiso CONTROL SERVER en el servidor.

Ejemplos

En el ejemplo siguiente, el nombre de inicio de sesión Albert se convierte en el propietario de la base de datos actual.

EXEC sp_changedbowner 'Albert'