ALTER AUTHORIZATION (Transact-SQL)ALTER AUTHORIZATION (Transact-SQL)

ESTE TEMA SE APLICA A: síSQL Server (a partir de 2008)síAzure SQL DatabasesíAzure SQL Data Warehouse síAlmacenamiento de datos paralelos THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

Cambia la propiedad de un elemento protegible.Changes the ownership of a securable.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

-- Syntax for SQL Server  
ALTER AUTHORIZATION    
   ON [ <class_type>:: ] entity_name    
   TO { principal_name | SCHEMA OWNER }    
[;]    

<class_type> ::=    
    {    
        OBJECT | ASSEMBLY | ASYMMETRIC KEY | AVAILABILITY GROUP | 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    
    }    
-- Syntax for SQL Database  

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

<class_type> ::=    
    {    
      OBJECT | ASSEMBLY | ASYMMETRIC KEY | CERTIFICATE     
    | TYPE | DATABASE | FULLTEXT CATALOG     
    | FULLTEXT STOPLIST     
    | ROLE | SCHEMA | SEARCH PROPERTY LIST     
    | SYMMETRIC KEY | XML SCHEMA COLLECTION    
    }    
-- Syntax for Azure SQL Data Warehouse  

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

<class_type> ::= {    
      SCHEMA     
    | OBJECT     
}    

<entity_name> ::=    
{    
      schema_name    
    | [ schema_name. ] object_name    
}    
-- Syntax for Parallel Data Warehouse  

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

<class_type> ::= {    
      DATABASE     
    | SCHEMA     
    | OBJECT     
}    

<entity_name> ::=    
{    
      database_name 
    | schema_name    
    | [ schema_name. ] object_name    
}    

ArgumentosArguments

<class_type > es la clase protegible de la entidad para el que se va a cambiar el propietario.<class_type> Is the securable class of the entity for which the owner is being changed. El valor predeterminado es OBJECT.OBJECT is the default.

OBJECTOBJECT Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database, almacenamiento de datos SQL Azure, Almacenamiento de datos paralelosParallel Data Warehouse.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database, Azure SQL Data Warehouse, Almacenamiento de datos paralelosParallel Data Warehouse.
ASSEMBLYASSEMBLY Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.
ASYMMETRIC KEYASYMMETRIC KEY Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.
AVAILABILITY GROUPAVAILABILITY GROUP Se aplica: SQL Server 2012 a través SQL Server 2017SQL Server 2017.APPLIES TO: SQL Server 2012 through SQL Server 2017SQL Server 2017.
CERTIFICATECERTIFICATE Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.
CONTRACTCONTRACT Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.
DATABASEDATABASE Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database. Para obtener más información, consulte ALTER autorización para bases de datos sección más adelante.For more information,see ALTER AUTHORIZATION FOR databases section below.
ENDPOINTENDPOINT Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.
FULLTEXT CATALOGFULLTEXT CATALOG Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.
FULLTEXT STOPLISTFULLTEXT STOPLIST Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.
MESSAGE TYPEMESSAGE TYPE Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.
REMOTE SERVICE BINDINGREMOTE SERVICE BINDING Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.
ROLEROLE Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.
ROUTEROUTE Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.
SCHEMASCHEMA Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database, almacenamiento de datos SQL Azure, Almacenamiento de datos paralelosParallel Data Warehouse.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database, Azure SQL Data Warehouse, Almacenamiento de datos paralelosParallel Data Warehouse.
SEARCH PROPERTY LISTSEARCH PROPERTY LIST Se aplica: SQL Server 2012SQL Server 2012 a través de SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.APPLIES TO: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.
SERVER ROLESERVER ROLE Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.
SERVICESERVICE Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.
SYMMETRIC KEYSYMMETRIC KEY Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.
TYPETYPE Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.
XML SCHEMA COLLECTIONXML SCHEMA COLLECTION Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.

nombre_de_entidad entity_name
Es el nombre de la entidad.Is the name of the entity.

principal_name | PROPIETARIO DEL ESQUEMAprincipal_name | SCHEMA OWNER
Nombre de la entidad de seguridad que va a ser propietaria de la entidad.Name of the security principal that will own the entity. Los objetos de base de datos deben tener una entidad de base de datos como propietaria; un usuario o rol de base de datos.Database objects must be owned by a database principal; a database user or role. Los objetos de servidor (como bases de datos) deben tener una entidad de servidor (un inicio de sesión) como propietaria.Server objects (such as databases) must be owned by a server principal (a login). Especifique propietario del esquema como el principal_name para indicar que el objeto debería pertenecer la entidad que posee el esquema del objeto.Specify SCHEMA OWNER as the principal_name to indicate that the object should be owned by the principal that owns the schema of the object.

ComentariosRemarks

Se puede usar ALTER AUTHORIZATION para cambiar la propiedad de cualquier entidad que tenga propietario.ALTER AUTHORIZATION can be used to change the ownership of any entity that has an owner. La propiedad de las entidades que contienen bases de datos se puede transferir a cualquier entidad de seguridad de nivel de base de datos.Ownership of database-contained entities can be transferred to any database-level principal. La propiedad de las entidades de nivel de servidor solo se puede transferir a entidades de seguridad de nivel de servidor.Ownership of server-level entities can be transferred only to server-level principals.

Importante

A partir de Resultado deSQL 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.Beginning with Resultado deSQL Server 2005, a user can own an OBJECT or TYPE that is contained by a schema owned by another database user. Es un cambio de comportamiento con respecto a versiones anteriores de SQL ServerSQL Server.This is a change of behavior from earlier versions of SQL ServerSQL Server. Para obtener más información, vea OBJECTPROPERTY ( Transact-SQL ) y TYPEPROPERTY ( Transact-SQL ) .For more information, see OBJECTPROPERTY (Transact-SQL) and 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.Ownership of the following schema-contained entities of type "object" can be transferred: tables, views, functions, procedures, queues, and synonyms.

No se puede transferir la propiedad de las siguientes entidades: servidores vinculados, estadísticas, restricciones, reglas, valores predeterminados, desencadenadores, colas de Service BrokerService Broker, credenciales, funciones de partición, esquemas de partición, claves maestras de bases de datos, clave maestra de servicios y notificaciones de eventos.Ownership of the following entities cannot be transferred: linked servers, statistics, constraints, rules, defaults, triggers, Service BrokerService Broker queues, credentials, partition functions, partition schemes, database master keys, service master key, and event notifications.

No se puede transferir la propiedad de los miembros de las siguientes clases de elementos protegibles: servidor, inicio de sesión, usuario, rol de aplicación y columna.Ownership of members of the following securable classes cannot be transferred: server, login, user, application role, and column.

La opción SCHEMA OWNER solo es válida cuando se transfiere la propiedad de una entidad que contiene esquemas.The SCHEMA OWNER option is only valid when you are transferring ownership of a schema-contained entity. SCHEMA OWNER transferirá la propiedad de la entidad al propietario del esquema en el que reside.SCHEMA OWNER will transfer ownership of the entity to the owner of the schema in which it resides. Solo las entidades de clase OBJECT, TYPE o XML SCHEMA COLLECTION contienen esquemas.Only entities of class OBJECT, TYPE, or XML SCHEMA COLLECTION are schema-contained.

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.If the target entity is not a database and the entity is being transferred to a new owner, all permissions on the target will be dropped.

Precaución

En Resultado deSQL Server 2005, el comportamiento de los esquemas es distinto del de las versiones anteriores de SQL ServerSQL Server.In Resultado deSQL Server 2005, the behavior of schemas changed from the behavior in earlier versions of SQL ServerSQL 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.Code that assumes that schemas are equivalent to database users may not return correct results. Las vistas de catálogo antiguas, incluida sysobjects, no deben usarse en una base de datos en la que se haya 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.Old catalog views, including sysobjects, should not be used in a database in which any of the following DDL statements has ever been used: 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.In a database in which any of these statements has ever been used, you must use the new catalog views. En las nuevas vistas de catálogo se tiene en cuenta la separación de entidades de seguridad y esquemas que se presentó en Resultado deSQL Server 2005.The new catalog views take into account the separation of principals and schemas that was introduced in Resultado deSQL Server 2005. Para obtener más información sobre las vistas de catálogo, vea Vistas de catálogo (Transact-SQL).For more information about catalog views, see Catalog Views (Transact-SQL).

Tenga en cuenta los siguientes aspectos:Also, note the following:

Importante

Es la única manera confiable de localizar al propietario de un objeto de consulta el sys.objects vista de catálogo.The only reliable way to find the owner of a object is to query the sys.objects catalog view. La única manera confiable de localizar al propietario de un tipo consiste en utilizar la función TYPEPROPERTY.The only reliable way to find the owner of a type is to use the TYPEPROPERTY function.

Condiciones y casos especialesSpecial Cases and Conditions

En la siguiente tabla se enumeran los casos especiales, las excepciones y las condiciones que se aplican para modificar la autorización.The following table lists special cases, exceptions, and conditions that apply to altering authorization.

ClaseClass CondiciónCondition
OBJECTOBJECT No se puede cambiar la propiedad de desencadenadores, restricciones, reglas, valores predeterminados, estadísticas, objetos del sistema, colas, vistas indizadas o tablas con vistas indizadas.Cannot change ownership of triggers, constraints, rules, defaults, statistics, system objects, queues, indexed views, or tables with indexed views.
SCHEMASCHEMA Cuando se transfiere la propiedad, se quitarán los permisos en objetos contenidos en esquemas que no tengan propietarios explícitos.When ownership is transferred, permissions on schema-contained objects that do not have explicit owners will be dropped. No se puede cambiar el propietario de sys, dbo o information_schema.Cannot change the owner of sys, dbo, or information_schema.
TYPETYPE No se puede cambiar la propiedad de un TYPE que pertenece a sys o information_schema.Cannot change ownership of a TYPE that belongs to sys or information_schema.
CONTRACT, MESSAGE TYPE o SERVICECONTRACT, MESSAGE TYPE, or SERVICE No se puede cambiar la propiedad de entidades del sistema.Cannot change ownership of system entities.
SYMMETRIC KEYSYMMETRIC KEY No se puede cambiar la propiedad de claves globales temporales.Cannot change ownership of global temporary keys.
CERTIFICATE o ASYMMETRIC KEYCERTIFICATE or ASYMMETRIC KEY No se puede transferir la propiedad de estas entidades a un rol o un grupo.Cannot transfer ownership of these entities to a role or group.
ENDPOINTENDPOINT La entidad de seguridad debe ser un inicio de sesión.The principal must be a login.

ALTER AUTHORIZATION para bases de datosALTER AUTHORIZATION for databases

SE APLICA: SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.APPLIES TO: SQL Server 2017SQL Server 2017, Base de datos SQL de AzureAzure SQL Database.

Para SQL Server:For SQL Server:

Requisitos para el nuevo propietario: Requirements for the new owner:
La nueva entidad de seguridad de propietario debe ser uno de los siguientes:The new owner principal must be one of the following:

  • Un inicio de sesión de autenticación de SQL Server.A SQL Server authentication login.
  • Un inicio de sesión de autenticación de Windows que representa un usuario de Windows (no un grupo).A Windows authentication login representing a Windows user (not a group).
  • Un usuario de Windows que autentica a través de un inicio de sesión de autenticación de Windows que representa un grupo de Windows.A Windows user that authenticates through a Windows authentication login representing a Windows group.

Requisitos para la persona que ejecuta la instrucción ALTER AUTHORIZATION:Requirements for the person executing the ALTER AUTHORIZATION statement:
Si no es un miembro de la sysadmin rol fijo de servidor, debe tener al menos TAKE OWNERSHIP en la base de datos y debe tener el permiso IMPERSONATE en el nuevo inicio de sesión del propietario.If you are not a member of the sysadmin fixed server role, you must have at least TAKE OWNERSHIP permission on the database, and must have IMPERSONATE permission on the new owner login.

Base de datos de SQL Azure:For Azure SQL Database:

Requisitos para el nuevo propietario: Requirements for the new owner:
La nueva entidad de seguridad de propietario debe ser uno de los siguientes:The new owner principal must be one of the following:

  • Un inicio de sesión de autenticación de SQL Server.A SQL Server authentication login.
  • Un usuario federado (no un grupo) presente en Azure AD.A federated user (not a group) present in Azure AD.
  • Un usuario administrado (no un grupo) o una aplicación en Azure AD.A managed user (not a group) or an application present in Azure AD.

Nota

Si el nuevo propietario es un usuario de Azure Active Directory, no puede existir como un usuario en la base de datos donde el nuevo propietario se convertirá en el DBO nuevo.If the new owner is an Azure Active Directory user, it cannot exist as a user in the database where the new owner will become the new DBO. Estos usuarios de Azure AD deben quitarse primero desde la base de datos antes de ejecutar la instrucción ALTER AUTHORIZATION cambiar la propiedad de base de datos al nuevo usuario.Such Azure AD user must be first removed from the database before executing the ALTER AUTHORIZATION statement changing the database ownership to the new user. Para obtener más información acerca de cómo configurar un usuarios de Azure Active Directory con la base de datos SQL, consulte conectarse a la base de datos SQL o SQL datos almacenamiento mediante Azure Active Directory autenticación.For more information about configuring an Azure Active Directory users with SQL Database, see Connecting to SQL Database or SQL Data Warehouse By Using Azure Active Directory Authentication.

Requisitos para la persona que ejecuta la instrucción ALTER AUTHORIZATION:Requirements for the person executing the ALTER AUTHORIZATION statement:
Debe conectarse a la base de datos de destino para cambiar el propietario de esa base de datos.You must connect to the target database to change the owner of that database.

Los siguientes tipos de cuentas pueden cambiar el propietario de una base de datos.The following types of accounts can change the owner of a database.

  • El inicio de sesión de entidad de seguridad de nivel de servicio.The service-level principal login. (El Administrador de SQL Azure proporcionado cuando se creó el servidor lógico.)(The SQL Azure administrator provisioned when the logical server was created.)
  • El Administrador de Azure Active Directory para el servidor de SQL Azure.The Azure Active Directory administrator for the Azure SQL Server.
  • El propietario actual de la base de datos.The current owner of the database.

En la tabla siguiente se resume los requisitos:The following table summarizes the requirements:

EjecutorExecutor DestinoTarget ResultadoResult
Inicio de sesión de autenticación de SQL ServerSQL Server Authentication login Inicio de sesión de autenticación de SQL ServerSQL Server Authentication login SuccessSuccess
Inicio de sesión de autenticación de SQL ServerSQL Server Authentication login Usuario de Azure ADAzure AD user Un errorFail
Usuario de Azure ADAzure AD user Inicio de sesión de autenticación de SQL ServerSQL Server Authentication login SuccessSuccess
Usuario de Azure ADAzure AD user Usuario de Azure ADAzure AD user SuccessSuccess

Para comprobar un propietario de Azure AD de la base de datos ejecute el siguiente comando de Transact-SQL en una base de datos de usuario (en este ejemplo testdb).To verify an Azure AD owner of the database execute the following Transact-SQL command in a user database (in this example testdb).

SELECT CAST(owner_sid as uniqueidentifier) AS Owner_SID   
FROM sys.databases   
WHERE name = 'testdb';  

El resultado será un identificador (por ejemplo, 6D8B81F6-7C79-444C-8858-4AF896C03C67) que se corresponde con Azure AD ObjectID asignado arichel@cqclinic.onmicrosoft.comThe output will be an identifier (such as 6D8B81F6-7C79-444C-8858-4AF896C03C67) which corresponds to Azure AD ObjectID assigned to richel@cqclinic.onmicrosoft.com
Cuando un usuario de inicio de sesión de autenticación de SQL Server es el propietario de la base de datos, ejecute la instrucción siguiente en la base de datos maestra para comprobar el propietario de la base de datos:When a SQL Server authentication login user is the database owner, execute the following statement in the master database to verify the database owner:

SELECT d.name, d.owner_sid, sl.name   
FROM sys.databases AS d  
JOIN sys.sql_logins AS sl  
ON d.owner_sid = sl.sid;  

Práctica recomendadaBest practice

En lugar de usuarios de Azure AD como propietarios individuales de la base de datos, utilice un grupo de Azure AD como un miembro de la db_owner rol fijo de base de datos.Instead of using Azure AD users as individual owners of the database, use an Azure AD group as a member of the db_owner fixed database role. Los pasos siguientes, se muestra cómo configurar un inicio de sesión deshabilitado como propietario de la base de datos y hacer que un grupo de Active Directory de Azure (mydbogroup) un miembro de la db_owner rol.The following steps, show how to configure a disabled login as the database owner, and make an Azure Active Directory group (mydbogroup) a member of the db_owner role.

  1. Inicie sesión en SQL Server como administrador de Azure AD y cambiar el propietario de la base de datos a un inicio de sesión de autenticación de SQL Server deshabilitado.Login to SQL Server as Azure AD admin, and change the owner of the database to a disabled SQL Server authentication login. Por ejemplo, desde la base de datos de usuario ejecute:For example, from the user database execute:
    ALTER AUTHORIZATION ON database::testdb TO DisabledLogin;
  2. Crear un grupo de Azure AD debe poseer la base de datos y agregarlo como un usuario a la base de datos de usuario.Create an Azure AD group that should own the database and add it as a user to the user database. Por ejemplo:For example:
    CREATE USER [mydbogroup] FROM EXTERNAL PROVIDER;
  3. En la base de datos de usuario, agregue el usuario que representa el grupo de Azure AD, en la db_owner rol fijo de base de datos.In the user database add the user representing the Azure AD group, to the db_owner fixed database role. Por ejemplo:For example:
    ALTER ROLE db_owner ADD MEMBER mydbogroup;

Ahora el mydbogroup los miembros pueden administrar centralmente la base de datos como miembros de la db_owner rol.Now the mydbogroup members can centrally manage the database as members of the db_owner role.

  • Cuando los miembros de este grupo se quitarán del grupo de Azure AD, automáticamente pierdan los permisos dbo para esta base de datos.When members of this group are removed from the Azure AD group, they automatically loose the dbo permissions for this database.
  • De forma similar si se agregan nuevos miembros a mydbogroup grupo de Azure AD, que obtengan automáticamente el acceso de dbo para esta base de datos.Similarly if new members are added to mydbogroup Azure AD group, they automatically gain the dbo access for this database.

Para comprobar si un usuario específico tiene el permiso efectivo dbo, hacer que el usuario ejecute la instrucción siguiente:To check if a specific user has the effective dbo permission, have the user execute the following statement:

SELECT IS_MEMBER ('db_owner');  

Un valor devuelto de 1 indica que el usuario es un miembro del rol.A return value of 1 indicates the user is a member of the role.

PermissionsPermissions

Requiere el permiso TAKE OWNERSHIP en la entidad.Requires TAKE OWNERSHIP permission on the entity. Si el propietario no es el usuario que ejecuta esta instrucción, también se necesita, 1) el permiso IMPERSONATE en el nuevo propietario si es un usuario o inicio de sesión; 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 aplicación, el permiso ALTER en el rol de aplicación.If the new owner is not the user that is executing this statement, also requires either, 1) IMPERSONATE permission on the new owner if it is a user or login; or 2) if the new owner is a role, membership in the role, or ALTER permission on the role; or 3) if the new owner is an application role, ALTER permission on the application role.

EjemplosExamples

A.A. Transferir la propiedad de una tablaTransfer ownership of a table

En el siguiente ejemplo se transfiere la propiedad de la tabla Sprockets al usuario MichikoOsada.The following example transfers ownership of table Sprockets to user MichikoOsada. La tabla se encuentra dentro del esquema Parts.The table is located inside schema Parts.

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

La consulta también podría ser similar a la siguiente:The query could also look like the following:

ALTER AUTHORIZATION ON Parts.Sprockets TO MichikoOsada;    
GO    

Si el esquema de objetos no se incluye como parte de la instrucción, el Motor de base de datosDatabase Engine tendrá un aspecto para el objeto en el esquema predeterminado de los usuarios.If the objects schema is not included as part of the statement, the Motor de base de datosDatabase Engine will look for the object in the users default schema. Por ejemplo:For example:

ALTER AUTHORIZATION ON Sprockets TO MichikoOsada;    
ALTER AUTHORIZATION ON OBJECT::Sprockets TO MichikoOsada;    

B.B. Transferir la propiedad de una vista al propietario del esquemaTransfer ownership of a view to the schema owner

En el siguiente ejemplo se transfiere la propiedad de la vista ProductionView06 al propietario del esquema que la contiene.The following example transfers ownership the view ProductionView06 to the owner of the schema that contains it. La vista se encuentra dentro del esquema Production.The view is located inside schema Production.

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

C.C. Transferir la propiedad de un esquema a un usuarioTransfer ownership of a schema to a user

En el siguiente ejemplo se transfiere la propiedad del esquema SeattleProduction11 al usuario SandraAlayo.The following example transfers ownership of the schema SeattleProduction11 to user SandraAlayo.

ALTER AUTHORIZATION ON SCHEMA::SeattleProduction11 TO SandraAlayo;    
GO    

D.D. Transferir la propiedad de un extremo a un inicio de sesión de SQL ServerTransfer ownership of an endpoint to a SQL Server login

En el siguiente ejemplo se transfiere la propiedad del extremo CantabSalesServer1 a JaePak.The following example transfers ownership of endpoint CantabSalesServer1 to 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.Because the endpoint is a server-level securable, the endpoint can only be transferred to a server-level principal.

Se aplica a: desde SQL Server 2008SQL Server 2008 hasta SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

ALTER AUTHORIZATION ON ENDPOINT::CantabSalesServer1 TO JaePak;    
GO    

E.E. Cambiar el propietario de una tablaChanging the owner of a table

Cada uno de los ejemplos siguientes cambia el propietario de la Sprockets tabla el Parts base de datos para el usuario de base de datos MichikoOsada.Each of the following examples changes the owner of the Sprockets table in the Parts database to the database user MichikoOsada.

ALTER AUTHORIZATION ON Sprockets TO MichikoOsada;    
ALTER AUTHORIZATION ON dbo.Sprockets TO MichikoOsada;    
ALTER AUTHORIZATION ON OBJECT::Sprockets TO MichikoOsada;    
ALTER AUTHORIZATION ON OBJECT::dbo.Sprockets TO MichikoOsada;    

F.F. Cambiar el propietario de una base de datosChanging the owner of a database

Se aplica: SQL Server 2008SQL Server 2008 a través de SQL Server 2017SQL Server 2017, Almacenamiento de datos paralelosParallel Data Warehouse, Base de datos SQLSQL Database.APPLIES TO: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017, Almacenamiento de datos paralelosParallel Data Warehouse, Base de datos SQLSQL Database.

En el ejemplo siguiente se cambia el propietario de la Parts base de datos para el inicio de sesión MichikoOsada.The following example change the owner of the Parts database to the login MichikoOsada.

ALTER AUTHORIZATION ON DATABASE::Parts TO MichikoOsada;    

G.G. Cambiar el propietario de una base de datos de SQL a un usuario de AD de AzureChanging the owner of a SQL Database to an Azure AD User

En el ejemplo siguiente, un administrador de Azure Active Directory para SQL Server en una organización con un active directory denominado cqclinic.onmicrosoft.com, puede cambiar la propiedad actual de una base de datos targetDB y realizar un usuario AAD richel@cqclinic.onmicorsoft.com la nueva base de datos propietario con el comando siguiente:In the following example, an Azure Active Directory administrator for SQL Server in an organization with an active directory named cqclinic.onmicrosoft.com, can change the current ownership of a database targetDB and make an AAD user richel@cqclinic.onmicorsoft.com the new database owner using the following command:

ALTER AUTHORIZATION ON database::targetDB TO [rachel@cqclinic.onmicrosoft.com];   

Tenga en cuenta que, para usuarios de Azure AD se deben utilizar los corchetes que encierran el nombre de usuario.Note that for Azure AD users the brackets around the user name must be used.

Vea tambiénSee Also

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