Sie sind auf Seite 1von 4

ALTER AUTHORIZATION (Transact-SQL)

Sintaxis Copiar
ALTER AUTHORIZATION ON [ <class_type>:: ] entity_name TO { SCHEMA OWNER | principal_name } [;] <class_type> ::= { OBJECT | ASSEMBLY | ASYMMETRIC KEY | CERTIFICATE | CONTRACT | TYPE | DATABASE | ENDPOINT | FULLTEXT CATALOG | FULLTEXT STOPLIST | MESSAGE TYPE | REMOTE SERVICE BINDING | ROLE | ROUTE | SCHEMA | SEARCH PROPERTY LIST | SERVER ROLE | SERVICE | SYMMETRIC KEY | XML SCHEMA COLLECTION }

Argumentos <class_type> Es la clase protegible de la entidad para la que se va a cambiar el propietario.El valor predeterminado es OBJECT. entity_name Es el nombre de la entidad. principal_name Es el nombre de la entidad de seguridad que ser propietaria de la entidad. 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 de nivel de base de datos.La propiedad de las entidades de nivel de servidor solo se puede transferir a entidades de seguridad de nivel de servidor. Importante A partir de 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 ms informacin, vea OBJECTPROPERTY (Transact-SQL) y TYPEPROPERTY (TransactSQL).

Se puede transferir la propiedad de las siguientes entidades contenidas en esquemas de tipo "objeto": tablas, vistas, funciones, procedimientos, colas y sinnimos. No se puede transferir la propiedad de las siguientes entidades: servidores vinculados, estadsticas, restricciones, reglas, valores predeterminados, desencadenadores, colas de Service Broker, credenciales, funciones de particin, esquemas de particin, 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 elementos protegibles: servidor, inicio de sesin, usuario, rol de aplicacin y columna. La opcin SCHEMA OWNER solo es vlida 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.Solo 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 quitarn todos los permisos del destino. Advertencia En SQL Server 2005, el comportamiento de los esquemas es distinto del de las versiones anteriores de SQL Server.Si en el cdigo se supone que los esquemas son equivalentes a usuarios de base de datos, los resultados obtenidos podran ser incorrectos.Las vistas de catlogo 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 catlogo.En las nuevas vistas de catlogo se tiene en cuenta la separacin de entidades de seguridad y esquemas que se present en SQL Server 2005.Para obtener ms informacin sobre las vistas de catlogo, vea Vistas de catlogo (Transact-SQL). Tenga en cuenta los siguientes aspectos: Importante La nica manera confiable de localizar el propietario de un objeto consiste en consultar la vista de catlogo sys.objects.La nica manera confiable de localizar al propietario de un tipo consiste en utilizar la funcin TYPEPROPERTY.

Condiciones y casos especiales


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

Clase

DATABASE

OBJECT

SCHEMA TYPE CONTRACT, MESSAGE TYPE o SERVICE SYMMETRIC KEY CERTIFICATE o ASYMMETRIC KEY ENDPOINT Permisos

Condicin No se puede cambiar el propietario de las bases de datos del sistema master, model y tempdb, la base de datos de recursos o una base de datos que se use como base de datos de distribucin.La entidad de seguridad debe ser un inicio de sesin.Si la entidad de seguridad es un inicio de sesin de Windows sin un inicio de sesin 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 sesin de SQL Server, no puede asignarse a un certificado o una clave asimtrica.Los alias dependientes se asignarn al nuevo propietario de la base de datos.El SID de DBO se actualizar en la base de datos actual y en sys.databases. No se puede cambiar la propiedad de desencadenadores, restricciones, reglas, valores predeterminados, estadsticas, objetos del sistema, colas, vistas indizadas o tablas con vistas indizadas. Cuando se transfiere la propiedad, se quitarn los permisos en objetos contenidos en esquemas que no tengan propietarios explcitos.No puede cambiar el propietario de sys, dbo o information_schema. No puede cambiar propiedad de un TYPE que pertenece a sys o information_schema. No se puede cambiar la propiedad de entidades del sistema. No se puede cambiar la propiedad de claves globales temporales. No se puede transferir la propiedad de estas entidades a un rol o un grupo. La entidad de seguridad debe ser un inicio de sesin.

Requiere el permiso TAKE OWNERSHIP en la entidad.Si el propietario no es el usuario que ejecuta esta instruccin, tambin se necesita, 1) el permiso IMPERSONATE en el nuevo propietario si es un usuario o inicio de sesin; o 2) si el nuevo propietario es un rol, debe pertenecer al rol, o el permiso ALTER en el rol; o 3) si el nuevo propietario es un rol de aplicacin, el permiso ALTER en el rol de aplicacin. 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. Copiar
ALTER AUTHORIZATION ON OBJECT::Parts.Sprockets TO MichikoOsada; GO

La consulta tambin podra ser similar a la siguiente: Copiar


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. Copiar
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. Copiar
ALTER AUTHORIZATION ON SCHEMA::SeattleProduction11 TO SandraAlayo; GO

D.Transferir la propiedad de un extremo a un inicio de sesin de SQL Server


En el siguiente ejemplo se transfiere la propiedad del extremo CantabSalesServer1 a JaePak.Puesto que el extremo es un elemento protegible de nivel de servidor, el extremo solo puede transferirse a una entidad de seguridad de nivel de servidor. Copiar
ALTER AUTHORIZATION ON ENDPOINT::CantabSalesServer1 TO JaePak; GO

Das könnte Ihnen auch gefallen