Comparteix a través de


sp_changeobjectowner (Transact-SQL)

Se aplica a: SQL Server

Cambia el propietario de un objeto en la base de datos actual.

Importante

Este procedimiento almacenado solo funciona con los objetos disponibles en SQL Server 2000 (8.x). Esta característica se quitará en una versión futura de SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. Use ALTER SCHEMA o ALTER AUTHORIZATION en su lugar. sp_changeobjectowner cambia el esquema y el propietario. Para conservar la compatibilidad con versiones anteriores de SQL Server, este procedimiento almacenado solo cambiará los propietarios de objetos cuando el propietario actual y el nuevo propietario tengan el mismo nombre que sus nombres de usuario de base de datos.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_changeobjectowner
    [ @objname = ] N'objname'
    , [ @newowner = ] N'newowner'
[ ; ]

Argumentos

[ @objname = ] N'objname'

@objname es nvarchar(776), sin ningún valor predeterminado.

Nombre de una tabla, vista, función definida por el usuario o procedimiento almacenado existente en la base de datos actual. @objname es nvarchar(776), sin valor predeterminado. @objname puede calificarse con el propietario del objeto existente, en el formulario <existing_owner>.<object_name> si el esquema y su propietario tienen el mismo nombre.

[ @newowner = ] N'newowner'

Nombre de la cuenta de seguridad que será el nuevo propietario del objeto. @newowner es sysname, sin valor predeterminado. @newowner debe ser un usuario de base de datos válido, un rol de servidor, un usuario de Windows o un grupo de Windows con acceso a la base de datos actual. Si el nuevo propietario es un usuario de Windows o un grupo de Windows para el que no hay ninguna entidad de seguridad de nivel de base de datos correspondiente, se crea un usuario de base de datos.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Comentarios

sp_changeobjectowner quita todos los permisos existentes del objeto . Tendrá que volver a aplicar los permisos que quiera conservar después de ejecutar sp_changeobjectowner. Por lo tanto, se recomienda crear un script de los permisos existentes antes de ejecutar sp_changeobjectowner. Después de que cambie la propiedad del objeto, puede usar el script para volver a aplicar los permisos. Deberá modificar el propietario del objeto en el script de permisos antes de la ejecución.

Para cambiar el propietario de un elemento protegible, use ALTER AUTHORIZATION. Para cambiar un esquema, use ALTER SCHEMA.

Permisos

Requiere la pertenencia al rol fijo de base de datos db_owner o pertenencia tanto al rol fijo de base de datos de db_ddladmin como al rol fijo de base de datos db_securityadmin y también CONTROL al permiso en el objeto .

Ejemplos

En el ejemplo siguiente se cambia el propietario de la authors tabla a Corporate\GeorgeW.

EXEC sp_changeobjectowner 'authors', 'Corporate\GeorgeW';
GO