ALTER AUTHORIZATION (Transact-SQL)

Actualizado: 5 de diciembre de 2005

Cambia la propiedad de un asegurable.

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

Sintaxis

ALTER AUTHORIZATION
   ON [ <entity_type> :: ] entity_name
   TO { SCHEMA OWNER | principal_name }

<entity_type> ::=
    {
        Object | Type | XML Schema Collection | Fulltext Catalog | Schema
    | Assembly | Role | Message Type | Contract | Service 
    | Remote Service Binding | Route | Symmetric Key | Endpoint 
    | Certificate | Database
    }

Argumentos

  • <entity_type> ::
    Es la clase de entidad en el que se va a cambiar el propietario. El valor predeterminado es objeto.
  • entity_name
    Es el nombre de la entidad.
  • principal_name
    Es el nombre de la entidad de seguridad que será propietaria de la entidad.

Notas

Se puede usar ALTER AUTHORIZATION para cambiar la propiedad de cualquier entidad que tenga propietario. La propiedad de las entidades que contienen bases de datos se puede transferir a cualquier entidad de seguridad en el nivel de base de datos. La propiedad de las entidades en el nivel de servidor sólo se puede transferir a entidades de seguridad en el nivel de servidor.

ms187359.note(es-es,SQL.90).gifImportante:
En SQL Server 2005, un usuario puede ser propietario de un objeto o un tipo contenido en un esquema de otro usuario de la base de datos. Es un cambio de comportamiento con respecto a versiones anteriores de SQL Server. Para obtener más información, vea Separación de esquemas de usuario, OBJECTPROPERTY (Transact-SQL) y TYPEPROPERTY (Transact-SQL).

Se puede transferir la propiedad de las siguientes entidades contenidas en esquemas de tipo "objeto": tablas, vistas, funciones, procedimientos, colas y sinónimos.

No se puede transferir la propiedad de las siguientes entidades: servidores vinculados, estadísticas, restricciones, reglas, valores predeterminados, desencadenadores, colas de Service Broker, credenciales, funciones de partición, esquemas de partición, claves maestras de bases de datos, clave maestra de servicios y notificaciones de eventos.

No se puede transferir la propiedad de los miembros de las siguientes clases de asegurables: servidor, inicio de sesión, usuario, función de aplicación y columna.

La opción SCHEMA OWNER sólo es válida cuando se transfiere la propiedad de una entidad que contiene esquemas. SCHEMA OWNER transferirá la propiedad de la entidad al propietario del esquema en el que reside. Sólo las entidades de clase OBJECT, TYPE o XML SCHEMA COLLECTION contienen esquemas.

Si la entidad de destino no es una base de datos y la entidad se va a transferir a un nuevo propietario, se quitarán todos los permisos del destino.

ms187359.Caution(es-es,SQL.90).gifAdvertencia:
En SQL Server 2005 el comportamiento de los esquemas es distinto al de las versiones anteriores de SQL Server. Si en el código se supone que los esquemas son equivalentes a usuarios de base de datos, los resultados obtenidos podrían ser incorrectos. Las vistas de catálogo antiguas, incluida sysobjects, no deben usarse en una base de datos en la que se ha usado alguna de las siguientes instrucciones DDL: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. En una base de datos en la que se ha usado alguna de estas instrucciones, deben usarse las nuevas vistas de catálogo. En las nuevas vistas de catálogo se tiene en cuenta la separación de entidades de seguridad y esquemas que se establece en SQL Server 2005. Para obtener más información sobre las vistas de catálogo, vea Vistas de catálogo (Transact-SQL).

Condiciones y casos especiales

En la siguiente tabla se enumeran los casos especiales, las excepciones y las condiciones que se aplican para modificar la autorización.

Clase Condición

DATABASE

No se puede cambiar el propietario de las bases de datos del sistema master, model, tempdb, la base de datos de recursos o una base de datos que se use como una base de datos de distribución. La entidad de seguridad debe ser un inicio de sesión. Si la entidad de seguridad es un inicio de sesión de Windows sin un inicio de sesión de SQL Server correspondiente, la entidad de seguridad debe tener los permisos CONTROL SERVER y TAKE OWNERSHIP en la base de datos. Si la entidad de seguridad es un inicio de sesión de SQL Server, no puede asignarse a un certificado o una clave asimétrica. Los alias dependientes se asignarán al nuevo propietario de la base de datos. El SID de DBO se actualizará en la base de datos actual y en sys.databases.

OBJECT

No se puede cambiar la propiedad de desencadenadores, restricciones, reglas, valores predeterminados, estadísticas, objetos del sistema, colas, vistas de índices o tablas con vistas de índices.

SCHEMA

Cuando se transfiere la propiedad, se quitarán los permisos en objetos que contienen esquemas que no tienen propietarios explícitos. No se puede cambiar el propietario de sys, dbo o information_schema.

TYPE

No se puede cambiar la propiedad de un TYPE que pertenece a sys o information_schema.

CONTRACT, MESSAGE TYPE o SERVICE

No se puede cambiar la propiedad de entidades del sistema.

SYMMETRIC KEY

No se puede cambiar la propiedad de claves globales temporales.

CERTIFICATE o ASYMMETRIC KEY

No se puede transferir la propiedad de estas entidades a una función o grupo.

ENDPOINT

La entidad de seguridad debe ser un inicio de sesión.

Permisos

Requiere el permiso TAKE OWNERSHIP en la entidad. Si el propietario no es el usuario que ejecuta esta instrucción, también se requiere, 1) el permiso IMPERSONATE en el nuevo propietario si es un usuario o inicio de sesión; o 2) si el nuevo propietario es una función, debe pertenecer a la función, o el permiso ALTER en la función ; o 3) si el nuevo propietario es una función de aplicación, el permiso ALTER en la función de aplicación.

Ejemplos

A. Transferir la propiedad de una tabla

En el siguiente ejemplo se transfiere la propiedad de la tabla Sprockets al usuario MichikoOsada. La tabla se encuentra dentro del esquema Parts.

ALTER AUTHORIZATION ON OBJECT::Parts.Sprockets TO MichikoOsada;
GO

La consulta también podría parecerse a la siguiente:

ALTER AUTHORIZATION ON Parts.Sprockets TO MichikoOsada;
GO

B. Transferir la propiedad de una vista al propietario del esquema

En el siguiente ejemplo se transfiere la propiedad de la vista ProductionView06 al propietario del esquema que la contiene. La vista se encuentra dentro del esquema Production.

ALTER AUTHORIZATION ON OBJECT::Production.ProductionView06 TO SCHEMA OWNER;
GO

C. Transferir la propiedad de un esquema a un usuario

En el siguiente ejemplo se transfiere la propiedad del esquema SeattleProduction11 al usuario SandraAlayo.

ALTER AUTHORIZATION ON SCHEMA::SeattleProduction11 TO SandraAlayo;
GO

D. Transferir la propiedad de un extremo a un inicio de sesión de SQL

En el siguiente ejemplo se transfiere la propiedad del extremo CantabSalesServer1 a JaePak. Puesto que el extremo es un elemento que puede protegerse en el nivel de servidor, el extremo sólo puede transferirse a una entidad de seguridad en el nivel de servidor.

ALTER AUTHORIZATION ON ENDPOINT::CantabSalesServer1 TO JaePak;
GO

Vea también

Referencia

OBJECTPROPERTY (Transact-SQL)
TYPEPROPERTY (Transact-SQL)
EVENTDATA (Transact-SQL)

Otros recursos

Separación de esquemas de usuario

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

5 de diciembre de 2005

Contenido nuevo:
  • Se ha agregado una Nota importante.