sp_changeobjectowner (Transact-SQL)
Cambia el propietario de un objeto en la base de datos actual.
Importante: |
---|
Este procedimiento almacenado sólo funciona con los objetos disponibles en Microsoft SQL Server 2000. 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. En su lugar, utilice ALTER SCHEMA o ALTER AUTHORIZATION. sp_changeobjectowner cambia tanto el esquema como el propietario. Para mantener la compatibilidad con versiones anteriores de SQL Server, este procedimiento almacenado sólo cambia los propietarios de los objetos cuando el propietario actual y el nuevo poseen esquemas con el mismo nombre que sus nombres de usuario de base de datos. |
Importante: |
---|
Se ha agregado un nuevo requisito a los permisos de este procedimiento almacenado. |
Convenciones de sintaxis de Transact-SQL
Sintaxis
sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner'
Argumentos
[ @objname = ] 'object'
Es el nombre de una tabla, vista, función definida por el usuario o procedimiento almacenado existente en la base de datos actual. object es de tipo nvarchar(776) y no tiene ningún valor predeterminado. object se puede calificar con el propietario del objeto existente, con el formato existing_owner**.**object, si el esquema y su propietario tienen el mismo nombre.
[ @newowner=] **'**owner '
Es el nombre de la cuenta de seguridad que corresponde al nuevo propietario del objeto. owner es de tipo sysname y no tiene ningún valor predeterminado. owner debe ser un usuario de base de datos, una función de servidor, un inicio de sesión de Microsoft Windows o un grupo de Windows válido con acceso a la base de datos actual. Si el nuevo propietario es un usuario o grupo de Windows que no tiene una entidad de seguridad de base de datos correspondiente, se creará un usuario de base de datos.
Notas
sp_changeobjectowner quita todos los permisos existentes del objeto. Será necesario volver a aplicar los permisos que se deseen mantener después de ejecutar sp_changeobjectowner. Por tanto, se recomienda crear una secuencia de comandos para los permisos existentes antes de ejecutar sp_changeobjectowner. Una vez modificado el propietario del objeto, se puede utilizar la secuencia de comandos para volver a aplicar los permisos. Deberá modificar el propietario del objeto en la secuencia de comandos de permisos antes de la ejecución. Para obtener más información acerca de las secuencias de comandos de base de datos, vea Documentar y crear secuencias de comandos de bases de datos.
Para cambiar el propietario de una entidad que puede protegerse, utilice ALTER AUTHORIZATION. Para cambiar un esquema, utilice ALTER SCHEMA.
Permisos
Debe pertenecer a la función fija de base de datos db_owner o a las funciones fijas de base de datos db_ddladmin y db_securityadmin, así como tener el permiso CONTROL en el objeto.
Valores de código de retorno
0 (correcto) o 1 (error)
Ejemplos
En el ejemplo siguiente se cambia el propietario de la tabla authors
a Corporate\GeorgeW
.
EXEC sp_changeobjectowner 'authors', 'Corporate\GeorgeW';
GO
Vea también
Referencia
ALTER SCHEMA (Transact-SQL)
ALTER DATABASE (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
sp_changedbowner (Transact-SQL)
Procedimientos almacenados del sistema (Transact-SQL)