Control y concesión de acceso de la base de datos a SQL Database y SQL Data WarehouseControlling and granting database access to SQL Database and SQL Data Warehouse

Después de la configuración de las reglas de firewall, puede conectarse a Azure SQL Database y SQL Data Warehouse como una de las cuentas de administrador, como el propietario de la base de datos o como usuario de la base de datos.After firewall rules configuration, you can connect to Azure SQL Database and SQL Data Warehouse as one of the administrator accounts, as the database owner, or as a database user in the database.

Nota

Este tema se aplica al servidor de Azure SQL, y a las bases de datos de SQL Database y SQL Data Warehouse que se crean en el servidor de Azure SQL.This topic applies to Azure SQL server, and to SQL Database and SQL Data Warehouse databases created on the Azure SQL server. Para simplificar, SQL Database se utiliza cuando se hace referencia tanto a SQL Database como a SQL Data Warehouse.For simplicity, SQL Database is used when referring to both SQL Database and SQL Data Warehouse.

Sugerencia

Para ver un tutorial, consulte Protección de bases de datos de Azure SQL.For a tutorial, see Secure your Azure SQL Database. Este tutorial no se aplica a la Instancia administradas de Azure SQL Database.This tutorial does not apply to Azure SQL Database Managed Instance.

Cuentas administrativas sin restriccionesUnrestricted administrative accounts

Hay dos cuentas administrativas (administrador del servidor y administrador de Active Directory) que actúan como administradores.There are two administrative accounts (Server admin and Active Directory admin) that act as administrators. Para identificar estas cuentas de administrador para SQL Server, abra Azure Portal y vaya a la pestaña de propiedades de SQL Server o SQL Database.To identify these administrator accounts for your SQL server, open the Azure portal, and navigate to the Properties tab of your SQL server or SQL Database.

Administradores de SQL Server

  • Administrador del servidorServer admin

    Cuando se crea un servidor de Azure SQL, debe designar un inicio de sesión de administrador del servidor.When you create an Azure SQL server, you must designate a Server admin login. SQL Server crea esa cuenta como un inicio de sesión en la base de datos maestra.SQL server creates that account as a login in the master database. Esta cuenta se conecta mediante la autenticación de SQL Server (nombre de usuario y contraseña).This account connects using SQL Server authentication (user name and password). Solo puede existir una de estas cuentas.Only one of these accounts can exist.

    Nota

    Para restablecer la contraseña del administrador del servidor, vaya a Azure Portal, haga clic en Servidores SQL Server, seleccione el servidor en la lista y luego haga clic en Restablecer contraseña.To reset the password for the server admin, go to the Azure portal, click SQL Servers, select the server from the list, and then click Reset Password.

  • Administrador de Azure Active DirectoryAzure Active Directory admin

    Una cuenta de Azure Active Directory, individual o una cuenta de grupo de seguridad, también se puede configurar como administrador.One Azure Active Directory account, either an individual or security group account, can also be configured as an administrator. Opcionalmente, se puede configurar un administrador de Azure AD, pero es obligatorio hacerlo si se desean usar cuentas de Azure AD para conectarse a SQL Database.It is optional to configure an Azure AD administrator, but an Azure AD administrator must be configured if you want to use Azure AD accounts to connect to SQL Database. Para más información sobre cómo configurar el acceso a Azure Active Directory, vea Conexión a SQL Database o SQL Data Warehouse mediante autenticación de Azure Active Directory y Compatibilidad de SSMS con Azure AD MFA con SQL Database y SQL Data Warehouse.For more information about configuring Azure Active Directory access, see Connecting to SQL Database or SQL Data Warehouse By Using Azure Active Directory Authentication and SSMS support for Azure AD MFA with SQL Database and SQL Data Warehouse.

Las cuentas de administrador del servidor y de administrador de Azure AD tienen las características siguientes:The Server admin and Azure AD admin accounts have the following characteristics:

  • Son las únicas cuentas que pueden conectarse automáticamente a cualquier instancia de SQL Database en el servidor.Are the only accounts that can automatically connect to any SQL Database on the server. (Para conectarse a una base de datos de usuario, las otras cuentas deben ser el propietario de la base de datos o tener una cuenta de usuario en la base de datos de usuario).(To connect to a user database, other accounts must either be the owner of the database, or have a user account in the user database.)
  • Acceden a las bases de datos de usuario como usuario dbo y tienen todos los permisos en las bases de datos de usuario.These accounts enter user databases as the dbo user and they have all the permissions in the user databases. (El propietario de una base de datos de usuario también accede a la base de datos como usuario dbo).(The owner of a user database also enters the database as the dbo user.)
  • No acceden a la base de datos master como usuario dbo y tienen permisos limitados en la base de datos maestra.Do not enter the master database as the dbo user, and have limited permissions in master.
  • No son miembros del rol de servidor fijo sysadmin de SQL Server, que no está disponible en SQL Database.Are not members of the standard SQL Server sysadmin fixed server role, which is not available in SQL database.
  • Pueden crear, modificar y quitar bases de datos, inicios de sesión, usuarios en la base de datos maestra y reglas de firewall de IP en el nivel de servidor.Can create, alter, and drop databases, logins, users in master, and server-level IP firewall rules.
  • Pueden agregar y quitar miembros en los roles dbmanager y loginmanager.Can add and remove members to the dbmanager and loginmanager roles.
  • Pueden ver la tabla del sistema sys.sql_logins.Can view the sys.sql_logins system table.

Configuración del firewallConfiguring the firewall

Cuando el firewall de nivel de servidor se configura para una dirección IP individual o un intervalo de ellas, tanto el administrador del servidor SQL como el administrador de Azure Active Directory pueden conectarse a la base de datos maestra y a todas las bases de datos de usuario.When the server-level firewall is configured for an individual IP address or range, the SQL server admin and the Azure Active Directory admin can connect to the master database and all the user databases. El firewall de nivel de servidor inicial se puede configurar a través de Azure Portal mediante PowerShell o mediante la API de REST.The initial server-level firewall can be configured through the Azure portal, using PowerShell or using the REST API. Una vez que se establece una conexión, también se pueden configurar otras reglas de firewall de IP en el nivel de servidor mediante Transact-SQL.Once a connection is made, additional server-level IP firewall rules can also be configured by using Transact-SQL.

Ruta de acceso de administradorAdministrator access path

Cuando el firewall de nivel de servidor está configurado correctamente, el administrador de SQL Server y el administrador de Azure Active Directory pueden conectarse mediante herramientas de cliente como SQL Server Management Studio o SQL Server Data Tools.When the server-level firewall is properly configured, the SQL server admin and the Azure Active Directory admin can connect using client tools such as SQL Server Management Studio or SQL Server Data Tools. Solo las herramientas más recientes proporcionan todas las características y funcionalidades.Only the latest tools provide all the features and capabilities. El diagrama siguiente muestra una configuración típica para las dos cuentas de administrador.The following diagram shows a typical configuration for the two administrator accounts.

Configuración de las dos cuentas de administración

Si se usa un puerto abierto en el firewall de nivel de servidor, los administradores pueden conectarse a cualquier SQL Database.When using an open port in the server-level firewall, administrators can connect to any SQL Database.

Conexión a una base de datos mediante SQL Server Management StudioConnecting to a database by using SQL Server Management Studio

Para ver un tutorial en el que se explica cómo crear un servidor, una base de datos, reglas de firewall de IP de nivel de servidor y cómo usar SQL Server Management Studio para realizar consultas en una base de datos, consulte Tutorial de SQL Database: creación de una base de datos SQL en cuestión de minutos con datos de ejemplo y Azure Portal.For a walk-through of creating a server, a database, server-level IP firewall rules, and using SQL Server Management Studio to query a database, see Get started with Azure SQL Database servers, databases, and firewall rules by using the Azure portal and SQL Server Management Studio.

Importante

Le recomendamos usar siempre la versión más reciente de Management Studio para que pueda estar siempre al día de las actualizaciones de Microsoft Azure y SQL Database.It is recommended that you always use the latest version of Management Studio to remain synchronized with updates to Microsoft Azure and SQL Database. Actualice SQL Server Management Studio.Update SQL Server Management Studio.

Roles administrativos de nivel de servidor adicionalesAdditional server-level administrative roles

Importante

En esta sección no es aplicable a la Instancia administrada de Azure SQL Database, ya que estos roles son específicos de Azure SQL Database.This section does not apply to Azure SQL Database Managed Instance as these roles are specific to Azure SQL Database.

Además de los roles administrativos de nivel de servidor que se han descrito anteriormente, SQL Database proporciona dos roles administrativos restringidos en la base de datos maestra a la que se pueden agregar cuentas de usuario que otorgan permisos para crear bases de datos o administrar inicios de sesión.In addition to the server-level administrative roles discussed previously, SQL Database provides two restricted administrative roles in the master database to which user accounts can be added that grant permissions to either create databases or manage logins.

Creadores de bases de datosDatabase creators

Uno de estos roles administrativos es dbmanager.One of these administrative roles is the dbmanager role. Los miembros de este rol pueden crear bases de datos nuevas.Members of this role can create new databases. Para usar este rol, cree un usuario en la base de datos master y, después, agréguelo al rol de base de datos dbmanager.To use this role, you create a user in the master database and then add the user to the dbmanager database role. Para crear una base de datos, el usuario debe haber iniciado sesión con SQL Server en la base de datos master o ser un usuario de una base de datos independiente basado en Azure Active Directory.To create a database, the user must be a user based on a SQL Server login in the master database or contained database user based on an Azure Active Directory user.

  1. Con una cuenta de administrador, conéctese a la base de datos master.Using an administrator account, connect to the master database.

  2. crear un inicio de sesión de autenticación de SQL Server mediante la instrucción CREATE LOGIN.Create a SQL Server authentication login, using the CREATE LOGIN statement. Instrucción de ejemplo:Sample statement:

    CREATE LOGIN Mary WITH PASSWORD = '<strong_password>';
    

    Nota

    Al crear un inicio de sesión o un usuario de una base de datos independiente, use una contraseña segura.Use a strong password when creating a login or contained database user. Para obtener más información, consulte Contraseñas seguras.For more information, see Strong Passwords.

    Para mejorar el rendimiento, los inicios de sesión (entidades de nivel de servidor) se almacenan temporalmente en caché en el nivel de base de datos.To improve performance, logins (server-level principals) are temporarily cached at the database level. Para actualizar la caché de autenticación, consulte DBCC FLUSHAUTHCACHE.To refresh the authentication cache, see DBCC FLUSHAUTHCACHE.

  3. En la base de datos master, cree un usuario con la instrucción CREATE USER.In the master database, create a user by using the CREATE USER statement. El usuario puede ser un usuario de base de datos independiente de Azure Active Directory (si ha configurado el entorno para la autenticación de Azure AD), o un usuario de base de datos independiente de autenticación de SQL Server o un usuario de autenticación de SQL Server basándose en un inicio de sesión de autenticación de SQL Server (creado en el paso anterior). Instrucciones de ejemplo:The user can be an Azure Active Directory authentication contained database user (if you have configured your environment for Azure AD authentication), or a SQL Server authentication contained database user, or a SQL Server authentication user based on a SQL Server authentication login (created in the previous step.) Sample statements:

    CREATE USER [mike@contoso.com] FROM EXTERNAL PROVIDER; -- To create a user with Azure Active Directory
    CREATE USER Ann WITH PASSWORD = '<strong_password>'; -- To create a SQL Database contained database user
    CREATE USER Mary FROM LOGIN Mary;  -- To create a SQL Server user based on a SQL Server authentication login
    
  4. Agregue el nuevo usuario al rol dbmanager de la base de datos master utilizando la instrucción ALTER ROLE.Add the new user, to the dbmanager database role in master using the ALTER ROLE statement. Instrucciones de ejemplo:Sample statements:

    ALTER ROLE dbmanager ADD MEMBER Mary; 
    ALTER ROLE dbmanager ADD MEMBER [mike@contoso.com];
    

    Nota

    El rol dbmanager es un rol de base de datos de la base de datos maestra, por lo que solo puede agregar un usuario de la base de datos a dicho rol.The dbmanager is a database role in master database so you can only add a database user to the dbmanager role. No puede agregar un inicio de sesión de nivel de servidor al rol de nivel de base de datos.You cannot add a server-level login to database-level role.

  5. Si es necesario, configure una regla de firewall para permitir que el nuevo usuario se conecte.If necessary, configure a firewall rule to allow the new user to connect. (El nuevo usuario puede estar cubierto por una regla de firewall existente).(The new user might be covered by an existing firewall rule.)

Ahora, el usuario puede conectarse a la base de datos master y puede crear nuevas bases de datos.Now the user can connect to the master database and can create new databases. La cuenta que crea la base de datos se convierte en la propietaria de la base de datos.The account creating the database becomes the owner of the database.

Administradores de inicio de sesiónLogin managers

El otro rol administrativo es el rol de administrador de inicio de sesión.The other administrative role is the login manager role. Los miembros de este rol pueden crear nuevos inicios de sesión en la base de datos maestra.Members of this role can create new logins in the master database. Si lo desea, puede realizar los mismos pasos (crear un inicio de sesión y un usuario, y agregar un usuario al rol loginmanager) para que los usuarios puedan crear nuevos inicios de sesión en la base de datos maestra.If you wish, you can complete the same steps (create a login and user, and add a user to the loginmanager role) to enable a user to create new logins in the master. Normalmente los inicios de sesión no son necesarios, ya que Microsoft recomienda utilizar los usuarios de la base de datos independiente que se autenticarán en el nivel de base de datos, en lugar de utilizar los usuarios basándose en los inicios de sesión.Usually logins are not necessary as Microsoft recommends using contained database users, which authenticate at the database-level instead of using users based on logins. Para obtener más información, vea Usuarios de base de datos independiente - Conversión de la base de datos en portátil.For more information, see Contained Database Users - Making Your Database Portable.

Usuarios no administradoresNon-administrator users

Por lo general, las cuentas que no sean de administrador no necesitan acceso a la base de datos maestra.Generally, non-administrator accounts do not need access to the master database. Cree usuarios de una base de datos independiente en el nivel de base de datos con la instrucción CREATE USER (Transact-SQL) .Create contained database users at the database level using the CREATE USER (Transact-SQL) statement. El usuario puede ser un usuario de base de datos independiente de Azure Active Directory (si ha configurado el entorno para la autenticación de Azure AD), o un usuario de base de datos independiente de autenticación de SQL Server o un usuario de autenticación de SQL Server basándose en un inicio de sesión de autenticación de SQL Server (creado en el paso anterior). Para obtener más información, vea Usuarios de base de datos independiente - Conversión de la base de datos en portátil.The user can be an Azure Active Directory authentication contained database user (if you have configured your environment for Azure AD authentication), or a SQL Server authentication contained database user, or a SQL Server authentication user based on a SQL Server authentication login (created in the previous step.) For more information, see Contained Database Users - Making Your Database Portable.

Para crear usuarios, conectarse a la base de datos y ejecutar instrucciones similares a los siguientes ejemplos:To create users, connect to the database, and execute statements similar to the following examples:

CREATE USER Mary FROM LOGIN Mary; 
CREATE USER [mike@contoso.com] FROM EXTERNAL PROVIDER;

Inicialmente, solo pueden crear usuarios uno de los administradores o el propietario de la base de datos.Initially, only one of the administrators or the owner of the database can create users. Para autorizar que usuarios adicionales creen nuevos usuarios, conceda al usuario seleccionado el permiso ALTER ANY USER , para lo que debe emplear una instrucción como:To authorize additional users to create new users, grant that selected user the ALTER ANY USER permission, by using a statement such as:

GRANT ALTER ANY USER TO Mary;

Para proporcionar a otros usuarios un control total de la base de datos, conviértalos en miembros del rol fijo de base de datos db_owner.To give additional users full control of the database, make them a member of the db_owner fixed database role.

En Azure SQL Database, utilice la instrucción ALTER ROLE.In Azure SQL Database use the ALTER ROLE statement.

ALTER ROLE db_owner ADD MEMBER Mary;

En Azure SQL Data Warehouse, utilice EXEC sp_addrolemember.In Azure SQL Data Warehouse use EXEC sp_addrolemember.

EXEC sp_addrolemember 'db_owner', 'Mary';

Nota

Un motivo habitual para crear un usuario de base de datos basado en un inicio de sesión de servidor de SQL Database es que algunos usuarios necesitan acceder a varias bases de datos.One common reason to create a database user based on a SQL Database server login is for users that need access to multiple databases. Como los usuarios de base de datos son entidades individuales, cada una de ellas tiene un usuario y contraseña propios.Since contained database users are individual entities, each database maintains its own user and its own password. Esto puede producir una sobrecarga, ya que el usuario debe recordar las contraseñas de las bases de datos, y volverse insostenible al tener que cambiar la contraseña de numerosas bases de datos.This can cause overhead as the user must then remember each password for each database, and it can become untenable when having to change multiple passwords for many databases. Sin embargo, al utilizar el inicio de sesión de SQL Server y la alta disponibilidad (grupos de conmutación por error y replicación geográfica activa), el inicio de sesión de SQL Server se debe establecer manualmente en cada servidor.However, when using SQL Server Logins and high availability (active geo-replication and failover groups), the SQL Server logins must be set manually at each server. De lo contrario, el usuario de base de datos perderá la asignación al inicio de sesión del servidor tras una conmutación por error y no podrá acceder a la base de datos después de la conmutación por error.Otherwise, the database user will no longer be mapped to the server login after a failover occurs, and will not be able to access the database post failover. Para más información sobre la configuración del inicio de sesión para la replicación geográfica, consulte Configuración y administración de la seguridad de Azure SQL Database para la restauración geográfica o la conmutación por error.For more information on configuring logins for geo-replication, please see Configure and manage Azure SQL Database security for geo-restore or failover.

Configuración del firewall de nivel de base de datosConfiguring the database-level firewall

Como procedimiento recomendado, los usuarios no administradores solo deben tener acceso a través del firewall a las bases de datos que utilizan.As a best practice, non-administrator users should only have access through the firewall to the databases that they use. En lugar de autorizar sus direcciones IP a través del firewall de nivel de servidor y permitir acceder a todas las bases de datos, use la instrucción sp_set_database_firewall_rule para configurar el firewall de nivel de base de datos.Instead of authorizing their IP addresses through the server-level firewall and giving them access to all databases, use the sp_set_database_firewall_rule statement to configure the database-level firewall. El firewall de nivel de base de datos no se puede configurar a través del portal.The database-level firewall cannot be configured by using the portal.

Ruta de acceso de no administradorNon-administrator access path

Si el firewall de nivel de base de datos está configurado correctamente, los usuarios de la base de datos pueden conectarse mediante herramientas de cliente como SQL Server Management Studio o SQL Server Data Tools.When the database-level firewall is properly configured, the database users can connect using client tools such as SQL Server Management Studio or SQL Server Data Tools. Solo las herramientas más recientes proporcionan todas las características y funcionalidades.Only the latest tools provide all the features and capabilities. El siguiente diagrama muestra una ruta de acceso típica de no administrador.The following diagram shows a typical non-administrator access path.

Ruta de acceso de no administrador

Grupos y rolesGroups and roles

La administración de acceso eficiente utiliza los permisos asignados a grupos y roles, en lugar de a usuarios individuales.Efficient access management uses permissions assigned to groups and roles instead of individual users.

  • Si utiliza la autenticación de Azure Active Directory, coloque los usuarios de Azure Active Directory en un grupo de Azure Active Directory.When using Azure Active Directory authentication, put Azure Active Directory users into an Azure Active Directory group. Cree un usuario de base de datos independiente para el grupo.Create a contained database user for the group. Coloque uno o varios usuarios de base de datos en un rol de base de datos y, luego, asigne permisos al rol de base de datos.Place one or more database users into a database role and then assign permissions to the database role.

  • Si utilizar la autenticación de SQL Server, cree usuarios de base de datos contenidos en la base de datos.When using SQL Server authentication, create contained database users in the database. Coloque uno o varios usuarios de base de datos en un rol de base de datos y, luego, asigne permisos al rol de base de datos.Place one or more database users into a database role and then assign permissions to the database role.

Los roles de base de datos pueden ser roles integrados como db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter y db_denydatareader.The database roles can be the built-in roles such as db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter, and db_denydatareader. db_owner se usa habitualmente para conceder permiso completo solo a algunos usuarios.db_owner is commonly used to grant full permission to only a few users. Los restantes roles fijos de base de datos son útiles para obtener rápidamente una base de datos simple en la fase de desarrollo, pero no se recomiendan para la mayoría de las bases de datos de producción.The other fixed database roles are useful for getting a simple database in development quickly, but are not recommended for most production databases. Por ejemplo, el rol fijo de base de datos db_datareader concede acceso de lectura a todas las tablas de la base de datos, algo que normalmente es más de lo estrictamente necesario.For example, the db_datareader fixed database role grants read access to every table in the database, which is usually more than is strictly necessary. Es mucho mejor usar la instrucción CREATE ROLE para crear sus propios roles de base de datos definidos por el usuario y otorgar cuidadosamente a cada rol los permisos mínimos necesarios para la necesidad empresarial.It is far better to use the CREATE ROLE statement to create your own user-defined database roles and carefully grant each role the least permissions necessary for the business need. Cuando un usuario es miembro de varios roles, realiza la agregación de los permisos de todos ellos.When a user is a member of multiple roles, they aggregate the permissions of them all.

PermisosPermissions

En SQL Database, hay más de 100 permisos que pueden conceder o denegar individualmente.There are over 100 permissions that can be individually granted or denied in SQL Database. Muchos de estos permisos están anidados.Many of these permissions are nested. Por ejemplo, el permiso UPDATE de un esquema incluye el permiso UPDATE en cada tabla dentro de dicho esquema.For example, the UPDATE permission on a schema includes the UPDATE permission on each table within that schema. Al igual que en la mayoría de los sistemas de permisos, la denegación de un permiso anula su concesión.As in most permission systems, the denial of a permission overrides a grant. Dada la naturaleza anidada y el número de permisos, es preciso realizar un estudio meticuloso para diseñar un sistema de permisos apropiado para proteger adecuadamente la base de datos.Because of the nested nature and the number of permissions, it can take careful study to design an appropriate permission system to properly protect your database. Empiece con la lista de permisos de Permisos (motor de base de datos) y revise el gráfico a tamaño de póster de los permisos.Start with the list of permissions at Permissions (Database Engine) and review the poster size graphic of the permissions.

Consideraciones y restriccionesConsiderations and restrictions

Al administrar los inicios de sesión y los usuarios en SQL Database, tenga en cuenta lo siguiente:When managing logins and users in SQL Database, consider the following:

  • Debe estar conectado a la base de datos maestra cuando ejecute las instrucciones CREATE/ALTER/DROP DATABASE.You must be connected to the master database when executing the CREATE/ALTER/DROP DATABASE statements.

  • El usuario de la base de datos correspondiente al inicio de sesión del administrador de servidor no se puede alterar ni quitar.The database user corresponding to the Server admin login cannot be altered or dropped.

  • El inglés de Estados Unidos es el idioma predeterminado del inicio de sesión del administrador del servidor.US-English is the default language of the Server admin login.

  • Solamente los administradores (inicio de sesión de administrador de servidor o de administrador de Azure AD) y los miembros del rol de base de datos dbmanager de la base de datos maestra tienen permiso para ejecutar las instrucciones CREATE DATABASE y DROP DATABASE.Only the administrators (Server admin login or Azure AD administrator) and the members of the dbmanager database role in the master database have permission to execute the CREATE DATABASE and DROP DATABASE statements.

  • Debe estar conectado a la base de datos maestra al ejecutar las instrucciones CREATE/ALTER/DROP LOGIN .You must be connected to the master database when executing the CREATE/ALTER/DROP LOGIN statements. Sin embargo, el uso de inicios de sesión no es recomendable.However using logins is discouraged. En su lugar, utilice los usuarios de la base de datos independiente.Use contained database users instead.

  • Para conectarse a una base de datos de usuario, debe proporcionar el nombre de la base de datos de la cadena de conexión.To connect to a user database, you must provide the name of the database in the connection string.

  • Solamente el inicio de sesión principal del nivel de servidor y los miembros del rol de base de datos loginmanager de la base de datos maestra tienen permiso para ejecutar las instrucciones CREATE LOGIN, ALTER LOGIN y DROP LOGIN.Only the server-level principal login and the members of the loginmanager database role in the master database have permission to execute the CREATE LOGIN, ALTER LOGIN, and DROP LOGIN statements.

  • Al ejecutar las instrucciones CREATE/ALTER/DROP LOGIN y CREATE/ALTER/DROP DATABASE en una aplicación ADO.NET, no se permite el uso de comandos con parámetros.When executing the CREATE/ALTER/DROP LOGIN and CREATE/ALTER/DROP DATABASE statements in an ADO.NET application, using parameterized commands is not allowed. Para obtener más información, consulte Comandos y parámetros.For more information, see Commands and Parameters.

  • Al ejecutar las instrucciones CREATE/ALTER/DROP DATABASE y CREATE/ALTER/DROP LOGIN, cada una de ellas deben ser la única instrucción de un lote de Transact-SQL.When executing the CREATE/ALTER/DROP DATABASE and CREATE/ALTER/DROP LOGIN statements, each of these statements must be the only statement in a Transact-SQL batch. De lo contrario, se produce un error.Otherwise, an error occurs. Por ejemplo, la instrucción Transact-SQL siguiente comprueba si existe la base de datos.For example, the following Transact-SQL checks whether the database exists. Si existe, se llama a una instrucción DROP DATABASE para quitar la base de datos.If it exists, a DROP DATABASE statement is called to remove the database. Dado que la instrucción DROP DATABASE no es la única instrucción del lote, la ejecución de la siguiente instrucción Transact-SQL produce un error.Because the DROP DATABASE statement is not the only statement in the batch, executing the following Transact-SQL statement results in an error.

    IF EXISTS (SELECT [name]
             FROM   [sys].[databases]
             WHERE  [name] = N'database_name')
    DROP DATABASE [database_name];
    GO
    

    En su lugar, use la siguiente instrucción de Transact-SQL:Instead, use the following Transact-SQL statement:

    DROP DATABASE IF EXISTS [database_name]
    
  • Cuando se ejecuta la instrucción CREATE USER con la opción FOR/FROM LOGIN, debe ser la única instrucción de un lote de Transact-SQL.When executing the CREATE USER statement with the FOR/FROM LOGIN option, it must be the only statement in a Transact-SQL batch.

  • Cuando se ejecuta la instrucción ALTER USER con la opción WITH LOGIN, debe ser la única instrucción de un lote de Transact-SQL.When executing the ALTER USER statement with the WITH LOGIN option, it must be the only statement in a Transact-SQL batch.

  • Para CREATE/ALTER/DROP un usuario requiere el permiso ALTER ANY USER de la base de datos.To CREATE/ALTER/DROP a user requires the ALTER ANY USER permission on the database.

  • Cuando el propietario de un rol de base de datos intenta agregar otro usuario de base de datos a ese rol o bien quitarlo, puede producirse el siguiente error: El usuario o el rol “Nombre” no existe en la base de datos.When the owner of a database role tries to add or remove another database user to or from that database role, the following error may occur: User or role 'Name' does not exist in this database. Este error se produce porque el usuario no es visible para el propietario.This error occurs because the user is not visible to the owner. Para resolver este problema, conceda al propietario del rol el permiso VIEW DEFINITION del usuario.To resolve this issue, grant the role owner the VIEW DEFINITION permission on the user.

Pasos siguientesNext steps