Crear un esquema de la base de datosCreate a Database Schema

SE APLICA A: síSQL Server síAzure SQL Database síAzure SQL Data Warehouse síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

En este tema se describe cómo crear un esquema en SQL Server 2017SQL Server 2017 mediante SQL Server Management StudioSQL Server Management Studio o Transact-SQLTransact-SQL.This topic describes how to create a schema in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

Antes de comenzarBefore You Begin

Limitaciones y restriccionesLimitations and Restrictions

  • El esquema nuevo es propiedad de una de las siguientes entidades de seguridad de nivel de base de datos: usuario de base de datos, rol de base de datos o rol de aplicación.The new schema is owned by one of the following database-level principals: database user, database role, or application role. Los objetos creados dentro de un esquema son propiedad del esquema y tienen un principal_id NULL en sys.objects.Objects created within a schema are owned by the owner of the schema, and have a NULL principal_id in sys.objects. La propiedad de los objetos incluidos en el esquema puede transferirse a cualquier entidad de seguridad de nivel de base de datos, pero el propietario del esquema siempre mantiene el permiso CONTROL en los objetos del esquema.Ownership of schema-contained objects can be transferred to any database-level principal, but the schema owner always retains CONTROL permission on objects within the schema.

  • Al crear un objeto de base de datos, si especifica una entidad de seguridad de dominio válida (usuario o grupo) como la propietaria del objeto, la entidad de seguridad de dominio se agrega a la base de datos como esquema.When creating a database object, if you specify a valid domain principal (user or group) as the object owner, the domain principal is added to the database as a schema. Esa entidad de seguridad de dominio es la propietaria del nuevo esquema.The new schema is owned by that domain principal.

SeguridadSecurity

PermisosPermissions

  • Requiere el permiso CREATE SCHEMA en la base de datos.Requires CREATE SCHEMA permission on the database.

  • Para especificar otro usuario como el propietario del esquema que se está creando, el autor de la llamada debe tener el permiso IMPERSONATE sobre ese usuario.To specify another user as the owner of the schema being created, the caller must have IMPERSONATE permission on that user. Si se especifica un rol de base de datos como propietario, el autor de la llamada debe cumplir uno de los siguientes criterios: pertenencia al rol o permiso ALTER en el rol.If a database role is specified as the owner, the caller must meet one of the following criteria: membership in the role or ALTER permission on the role.

Uso de SQL Server Management StudioUsing SQL Server Management Studio

Para crear un esquemaTo create a schema
  1. En el Explorador de objetos, expanda la carpeta Bases de datos .In Object Explorer, expand the Databases folder.

  2. Expanda la base de datos en la que se va a crear el esquema de la misma.Expand the database in which to create the new database schema.

  3. Haga clic con el botón derecho en la carpeta Seguridad , seleccione Nuevoy seleccione Esquema.Right-click the Security folder, point to New, and select Schema.

  4. En el cuadro de diálogo Esquema - Nuevo , en la página General , escriba un nombre para el nuevo esquema en el cuadro Nombre de esquema .In the Schema - New dialog box, on the General page, enter a name for the new schema in the Schema name box.

  5. En el cuadro Propietario del esquema , escriba el nombre del usuario o rol de base de datos que va a poseer el esquema.In the Schema owner box, enter the name of a database user or role to own the schema. Como alternativa, haga clic en Buscar para abrir el cuadro de diálogo Buscar roles y usuarios .Alternately, click Search to open the Search Roles and Users dialog box.

  6. Haga clic en Aceptar.Click OK.

Le escuchamos: Si encuentra algo obsoleto o incorrecto en este artículo, como un paso o un ejemplo de código, indíquenoslo.We are listening: If you find something outdated or incorrect in this article, such as a step or a code example, please tell us. Puede hacer clic en el botón Esta página situado en la sección Comentarios en la parte inferior de esta página.You can click the This page button in the Feedback section at the bottom of this page. Leemos todos los elementos de comentarios sobre SQL, normalmente el día siguiente.We read every item of feedback about SQL, typically the next day. Gracias.Thanks.

Nota

No se mostrará un cuadro de diálogo si va a crear un esquema mediante SSMS para una instancia de Azure SQL Database o de Azure SQL Data Warehouse.A dialog box will not appear if you are creating a Schema using SSMS against an Azure SQL Database or an Azure SQL Data Warehouse. Tendrá que ejecutar la instrucción T-SQL de creación de esquema de plantilla que se genera.You will need to run the Create Schema Template T-SQL Statement that is generated.

Opciones adicionalesAdditional Options

En el cuadro de diálogo Esquema - Nuevo también se ofrecen opciones en dos páginas adicionales: Permisos y Propiedades extendidas.The Schema- New dialog box also offers options on two additional pages: Permissions and Extended Properties.

  • La página Permisos muestra todos los elementos protegibles posibles y los permisos en esos elementos protegibles que se pueden conceder al inicio de sesión.The Permissions page lists all possible securables and the permissions on those securables that can be granted to the login.

  • La página Propiedades extendidas permite agregar propiedades personalizadas a los usuarios de base de datos.The Extended properties page allows you to add custom properties to database users.

Usar Transact-SQLUsing Transact-SQL

Para crear un esquemaTo create a schema

  1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datosDatabase Engine.In Object Explorer, connect to an instance of Motor de base de datosDatabase Engine.

  2. En la barra de Estándar, haga clic en Nueva consulta.On the Standard bar, click New Query.

  3. En el siguiente ejemplo se crea un esquema denominado Chains y luego se crea una tabla denominada Sizes.The following example creates a schema named Chains, and then creates a table named Sizes.

    CREATE SCHEMA Chains;
    GO
    CREATE TABLE Chains.Sizes (ChainID int, width dec(10,2));
    
  4. Se pueden realizar opciones adicionales en una sola instrucción.Additional options can be performed in a single statement. En el ejemplo siguiente se crea el esquema Sprockets, que es propiedad de Annik y contiene la tabla NineProngs.The following example creates the schema Sprockets owned by Annik that contains table NineProngs. La instrucción concede el permiso SELECT a Mandar y deniega el permiso SELECT a Prasanna.The statement grants SELECT to Mandar and denies SELECT to Prasanna.

    CREATE SCHEMA Sprockets AUTHORIZATION Annik  
        CREATE TABLE NineProngs (source int, cost int, partnumber int)  
        GRANT SELECT ON SCHEMA::Sprockets TO Mandar  
        DENY SELECT ON SCHEMA::Sprockets TO Prasanna;  
    GO  
    
  5. Ejecute la siguiente instrucción para ver los esquemas de esta base de datos:Execute the following statement, to view the schemas in this database:

    SELECT * FROM sys.schemas;
    

Para obtener más información, vea CREATE INDEX (Transact-SQL).For more information, see CREATE SCHEMA (Transact-SQL).