Řízení a udělení přístupu k databázi SQL Database a SQL Data WarehouseControlling and granting database access to SQL Database and SQL Data Warehouse

Po konfiguraci pravidel brány firewall se můžete připojit k Azure SQL Database a SQL Data Warehouse jako jeden z účtů správce, jako vlastník databáze nebo jako uživatel databáze v databázi.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.

Poznámka

Toto téma se vztahuje na Azure SQL Server a SQL Database a SQL Data Warehouse databáze vytvořené na Azure SQL serveru.This topic applies to Azure SQL server, and to SQL Database and SQL Data Warehouse databases created on the Azure SQL server. Pro zjednodušení se SQL Database používá k označení SQL Database i SQL Data Warehouse.For simplicity, SQL Database is used when referring to both SQL Database and SQL Data Warehouse.

Tip

Kurz najdete v tématu zabezpečení Azure SQL Database.For a tutorial, see Secure your Azure SQL Database. Tento kurz se nevztahuje na Azure SQL Database spravovanou instanci.This tutorial does not apply to Azure SQL Database Managed Instance.

Neomezené účty pro správuUnrestricted administrative accounts

Jako správci fungují dva účty pro správu (Správce serveru a Správce Active Directory).There are two administrative accounts (Server admin and Active Directory admin) that act as administrators. Pro identifikaci těchto účtů správců pro SQL Server otevřete Azure Portal a přejděte na kartu vlastnosti vašeho SQL serveru nebo 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.

Správci SQL serveru

  • Správce serveruServer admin

    Když vytvoříte Azure SQL server, musíte určit Přihlášení správce serveru.When you create an Azure SQL server, you must designate a Server admin login. SQL server vytvoří tento účet v hlavní databázi jako přihlašovací.SQL server creates that account as a login in the master database. Tento účet používá pro připojení ověřování SQL Serveru (uživatelské jméno a heslo).This account connects using SQL Server authentication (user name and password). Existovat může jenom jeden z těchto účtů.Only one of these accounts can exist.

    Poznámka

    Pokud chcete resetovat heslo pro správce serveru, přejděte na Azure Portal, klikněte na SQL servery, vyberte server ze seznamu a potom klikněte na resetovat heslo.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.

  • Správce Azure Active DirectoryAzure Active Directory admin

    Jako správce je možné nakonfigurovat jeden účet Azure Active Directory, a to buď individuální účet, nebo účet skupiny zabezpečení.One Azure Active Directory account, either an individual or security group account, can also be configured as an administrator. Je volitelné nakonfigurovat správce Azure AD, ale pokud chcete použít účty Azure AD pro připojení k SQL Database, musí být nakonfigurovaný správce Azure AD.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. Další informace o konfigurování přístupu v Azure Active Directory najdete v tématech Připojení ke službě SQL Database nebo SQL Data Warehouse pomocí ověřování služby Azure Active Directory a Podpora nástroje SSMS pro ověřování Azure AD MFA ve službě SQL Database a 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.

Účty správců serveru a správce Azure AD mají následující vlastnosti:The Server admin and Azure AD admin accounts have the following characteristics:

  • Jsou jedinými účty, které se můžou automaticky připojit k jakémukoli SQL Database na serveru.Are the only accounts that can automatically connect to any SQL Database on the server. (Pro připojení k uživatelské databázi ostatní účty musí buď být vlastníkem databáze, nebo musí v uživatelské databázi mít uživatelský účet.)(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.)
  • Tyto účty přistupují k uživatelským databázím jako uživatel dbo a mají pro ně veškerá oprávnění.These accounts enter user databases as the dbo user and they have all the permissions in the user databases. (Vlastník databáze také k databázi přistupuje jako uživatel dbo.)(The owner of a user database also enters the database as the dbo user.)
  • Nezadávejte master databázi jako dboho uživatele a mít v hlavní databázi omezená oprávnění.Do not enter the master database as the dbo user, and have limited permissions in master.
  • Nejsou členy standardní role serveru SQL Server sysadmin pevné, což není k dispozici ve službě SQL Database.Are not members of the standard SQL Server sysadmin fixed server role, which is not available in SQL database.
  • Může vytvářet, měnit a odstraňovat databáze, přihlášení, uživatele v hlavní databázi a pravidla brány firewall na úrovni serveru.Can create, alter, and drop databases, logins, users in master, and server-level IP firewall rules.
  • Může přidat nebo odebrat členy do rolí dbmanager a loginmanager.Can add and remove members to the dbmanager and loginmanager roles.
  • Může zobrazit sys.sql_logins systémovou tabulku.Can view the sys.sql_logins system table.

Konfigurace brány firewallConfiguring the firewall

Pokud je nakonfigurovaná brána firewall na úrovni serveru pro určitou IP adresu nebo rozsah IP adres, může se správce SQL serveru a správce Azure Active Directory připojit k hlavní databázi a všem uživatelským databázím.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. Počáteční bránu firewall na úrovni serveru je možné nakonfigurovat na webu Azure Portal, pomocí prostředí PowerShell nebo pomocí rozhraní REST API.The initial server-level firewall can be configured through the Azure portal, using PowerShell or using the REST API. Po vytvoření připojení můžete nakonfigurovat další pravidla brány firewall IP na úrovni serveru pomocí jazyka Transact-SQL.Once a connection is made, additional server-level IP firewall rules can also be configured by using Transact-SQL.

Cesta pro přístup správceAdministrator access path

Pokud je brána firewall na úrovni serveru správně nakonfigurovaná, může se správce SQL serveru a správce Azure Active Directory připojit pomocí klientských nástrojů, jako jsou SQL Server Management Studio nebo 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. Jenom nejnovější nástroje poskytují všechny funkce a možnosti.Only the latest tools provide all the features and capabilities. Následující diagram znázorňuje typickou konfiguraci pro dva účty správce.The following diagram shows a typical configuration for the two administrator accounts.

Konfigurace dvou účtů pro správu

Při použití otevřeného portu brány firewall na úrovni serveru se můžou správci připojit k jakékoli databázi služby SQL Database.When using an open port in the server-level firewall, administrators can connect to any SQL Database.

Připojení k databázi pomocí aplikace SQL Server Management StudioConnecting to a database by using SQL Server Management Studio

Návod, jak vytvořit server, databázi, pravidla brány firewall na úrovni serveru a použít SQL Server Management Studio k dotazování databáze, najdete v tématu Začínáme s Azure SQL Database servery, databázemi a pravidly brány firewall pomocí Azure Portal a SQL. Management Studio serveru.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.

Důležité

Doporučujeme vám vždy používat nejnovější verzi aplikace Management Studio, aby se zajistila synchronizovanost s aktualizacemi Microsoft Azure a 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. Aktualizovat aplikaci SQL Server Management Studio.Update SQL Server Management Studio.

Další správní role na úrovni serveruAdditional server-level administrative roles

Důležité

Tato část se nevztahuje na Azure SQL Database spravovanou instanci , protože tyto role jsou specifické pro Azure SQL Database.This section does not apply to Azure SQL Database Managed Instance as these roles are specific to Azure SQL Database.

Kromě správních rolí na úrovni serveru popsaných v předchozích částech poskytuje služba SQL Database v hlavní databázi dvě správní role s omezením přístupu, do kterých můžete přidávat uživatelské účty, a které udělují oprávnění k vytváření databází nebo správě přihlašová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.

Autoři databázíDatabase creators

Jednou z těchto správních rolí je role dbmanager.One of these administrative roles is the dbmanager role. Členové této role mohou vytvářet nové databáze.Members of this role can create new databases. Pokud chcete použít tuto roli, vytvořte uživatele v databázi master a pak ho přidejte do databázové role dbmanager.To use this role, you create a user in the master database and then add the user to the dbmanager database role. Aby bylo možné vytvořit databázi, musí být uživatel uživatelem založený na SQL Server přihlášení v databázi master nebo uživatel databáze s omezením na základě Azure Active Directory uživatele.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. Pomocí účtu správce se připojte k databázi master.Using an administrator account, connect to the master database.

  2. Pomocí příkazu Create Login Vytvořte přihlašovací údaje pro ověření SQL Server.Create a SQL Server authentication login, using the CREATE LOGIN statement. Ukázka příkazu:Sample statement:

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

    Poznámka

    Při vytváření přihlášení nebo uživatele databáze s omezením použijte silné heslo.Use a strong password when creating a login or contained database user. Další informace najdete v tématu Silná hesla.For more information, see Strong Passwords.

    Za účelem zvýšení výkonu se přihlášení (u hlavních účtů na úrovni serveru) dočasně ukládají do mezipaměti na úrovni databáze.To improve performance, logins (server-level principals) are temporarily cached at the database level. Pokud chcete aktualizovat mezipaměť pro ověřování, podívejte se na informace v tématu DBCC FLUSHAUTHCACHE.To refresh the authentication cache, see DBCC FLUSHAUTHCACHE.

  3. V databázi master vytvořte uživatele pomocí příkazu Create User .In the master database, create a user by using the CREATE USER statement. Uživatel může být Azure Active Directory ověřování, které obsahuje uživatele databáze (Pokud jste nakonfigurovali prostředí pro ověřování Azure AD), nebo pokud uživatel s omezením ověřování SQL Server obsahuje uživatele databáze nebo ověřování SQL Server na základě SQL Server přihlášení ověřování (vytvořené v předchozím kroku) Ukázkové příkazy: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. Přidejte nového uživatele do role databáze dbmanager v master pomocí příkazu ALTER role .Add the new user, to the dbmanager database role in master using the ALTER ROLE statement. Ukázky příkazů:Sample statements:

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

    Poznámka

    Dbmanager je databázová role v hlavní databázi, takže do role dbmanager můžete přidat pouze uživatele databáze.The dbmanager is a database role in master database so you can only add a database user to the dbmanager role. Do role na úrovni databáze není možné přidat přihlášení na úrovni serveru.You cannot add a server-level login to database-level role.

  5. V případě potřeby nakonfigurujte pravidlo brány firewall, aby se nový uživatel mohl připojit.If necessary, configure a firewall rule to allow the new user to connect. (Na nového uživatele se může vztahovat už existující pravidlo brány firewall.)(The new user might be covered by an existing firewall rule.)

Nyní se uživatel může připojit k databázi master a může vytvářet nové databáze.Now the user can connect to the master database and can create new databases. Účet použitý k vytvoření databáze se stává vlastníkem databáze.The account creating the database becomes the owner of the database.

Správci přihlášeníLogin managers

Druhou správní rolí je role správce přihlášení.The other administrative role is the login manager role. Členové této role mohou v hlavní databázi vytvářet nová přihlášení.Members of this role can create new logins in the master database. Pokud chcete, můžete použít stejný postup (vytvořit přihlášení a uživatele a přidat uživatele do role loginmanager) a povolit tak uživateli vytvářet nová přihlášení v hlavní databázi.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. Tato přihlášení obvykle nejsou nutná, protože Microsoft doporučuje místo uživatelů s ověřováním na základě přihlášení používat uživatele databáze s omezením, kteří jsou ověřovaní na úrovni databáze.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. Další informace najdete v tématu Uživatelé databáze s omezením – zajištění přenositelnosti databáze.For more information, see Contained Database Users - Making Your Database Portable.

Uživatelé bez oprávnění správceNon-administrator users

Obecně platí, že účty bez oprávnění správce nepotřebují přístup k hlavní databázi.Generally, non-administrator accounts do not need access to the master database. Uživatele databáze s omezením můžete vytvářet pomocí příkazu CREATE USER (Transact-SQL).Create contained database users at the database level using the CREATE USER (Transact-SQL) statement. Uživatel může být Azure Active Directory ověřování, které obsahuje uživatele databáze (Pokud jste nakonfigurovali prostředí pro ověřování Azure AD), nebo pokud uživatel s omezením ověřování SQL Server obsahuje uživatele databáze nebo ověřování SQL Server na základě SQL Server přihlášení ověřování (vytvořené v předchozím kroku) Další informace najdete v části Uživatelé databáze s omezením – vytvoření přenosné databáze.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.

Pokud chcete vytvářet uživatele, připojte se k databázi a spusťte podobné příkazy jako v následujících příkladech: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;

Na začátku může uživatele vytvořit jenom jeden ze správců nebo vlastník databáze.Initially, only one of the administrators or the owner of the database can create users. Jestliže chcete autorizovat další uživatele, aby mohli vytvářet nové uživatele, udělte vybraným uživatelům oprávnění ALTER ANY USER pomocí příkazu, jako je například tento: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;

Chcete-li poskytnout dalším uživatelům úplnou kontrolu nad databází, zajistěte, aby byly členy db_owner pevné databázové role.To give additional users full control of the database, make them a member of the db_owner fixed database role.

V Azure SQL Database použijte příkaz ALTER ROLE.In Azure SQL Database use the ALTER ROLE statement.

ALTER ROLE db_owner ADD MEMBER Mary;

V Azure SQL Data Warehouse použijte Sp_addrolemember exec.In Azure SQL Data Warehouse use EXEC sp_addrolemember.

EXEC sp_addrolemember 'db_owner', 'Mary';

Poznámka

Jedním z běžných důvodů, proč vytvořit uživatele databáze na základě přihlášení k serveru SQL Database, je pro uživatele, kteří potřebují přístup k více databázím.One common reason to create a database user based on a SQL Database server login is for users that need access to multiple databases. Vzhledem k tomu, že uživatelé databáze s omezením jsou jednotlivé entity, udržuje každá databáze vlastní uživatele a vlastní heslo.Since contained database users are individual entities, each database maintains its own user and its own password. To může způsobit režii, protože uživatel si pak musí pamatovat každé heslo pro každou databázi a může se stát untenableou změnou více hesel pro mnoho databází.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. Pokud ale používáte SQL Server přihlašovacích údajů a vysokou dostupnost (aktivní geografickou replikaci a skupiny převzetí služeb při selhání), SQL Server přihlášení musí být nastavená na každém serveru ručně.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. V opačném případě již nebude uživatel databáze po převzetí služeb při selhání mapován na přihlašovací jméno serveru a nebude moci získat přístup k databázi po převzetí služeb při selhání.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. Další informace o konfiguraci přihlášení pro geografickou replikaci najdete v tématu Konfigurace a Správa zabezpečení Azure SQL Database pro geografické obnovení nebo převzetí služeb při selhání.For more information on configuring logins for geo-replication, please see Configure and manage Azure SQL Database security for geo-restore or failover.

Konfigurace brány firewall na úrovni databázeConfiguring the database-level firewall

Uživatelé bez oprávnění správce by v rámci osvědčených postupů měli mít do databází, které používají, přístup pouze přes bránu firewall.As a best practice, non-administrator users should only have access through the firewall to the databases that they use. Místo toho, abyste autorizovali jejich IP adresy pomocí brány firewall na úrovni serveru a umožnili jim tak přístup do všech databází, nakonfigurujte bránu firewall na úrovni databáze pomocí příkazu sp_set_database_firewall_rule.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. Bránu firewall na úrovni databáze nemůžete nakonfigurovat pomocí portálu.The database-level firewall cannot be configured by using the portal.

Cesta pro přístup uživatelů bez oprávnění správceNon-administrator access path

Pokud je brána firewall na úrovni databáze správně nakonfigurovaná, můžou se uživatelé připojit pomocí klientských nástrojů, jako jsou SQL Server Management Studio nebo 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. Jenom nejnovější nástroje poskytují všechny funkce a možnosti.Only the latest tools provide all the features and capabilities. Následující diagram znázorňuje typickou cestu pro přístup uživatelů bez oprávnění správce.The following diagram shows a typical non-administrator access path.

Cesta pro přístup uživatelů bez oprávnění správce

Skupiny a roleGroups and roles

Efektivní správa přístupů využívá oprávnění přiřazená skupinám a rolím, nikoliv jednotlivým uživatelům.Efficient access management uses permissions assigned to groups and roles instead of individual users.

  • Pokud používáte ověřování pomocí Azure Active Directory, přidejte uživatele služby Azure Active Directory do skupiny Azure Active Directory.When using Azure Active Directory authentication, put Azure Active Directory users into an Azure Active Directory group. Pro tuto skupinu vytvořte uživatele databáze s omezením.Create a contained database user for the group. Přidejte jednoho nebo více uživatelů databáze do databázové role a potom této databázové roli přiřaďte oprávnění.Place one or more database users into a database role and then assign permissions to the database role.

  • Pokud používáte ověřování SQL Serveru, vytvořte v databázi uživatele databáze s omezením.When using SQL Server authentication, create contained database users in the database. Přidejte jednoho nebo více uživatelů databáze do databázové role a potom této databázové roli přiřaďte oprávnění.Place one or more database users into a database role and then assign permissions to the database role.

Mezi databázové role patří například předdefinované role db_owner, db_ddladmin, db_datawriter, db_datareader, db_denydatawriter a 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. Role db_owner se obvykle používá k udělení úplných oprávnění pouze několika uživatelům.db_owner is commonly used to grant full permission to only a few users. Ostatní pevné databázové role jsou užitečné pro rychlé vytvoření jednoduché databáze ve vývojovém prostředí, ale nedoporučují se pro většinu databází v produkčním prostředí.The other fixed database roles are useful for getting a simple database in development quickly, but are not recommended for most production databases. Pevná databázová role db_datareader například uděluje přístup pro čtení pro všechny tabulky v databázi, což je obvykle více, než je skutečně nezbytné.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. Je mnohem lepší vytvořit vlastní databázové role definované uživatelem pomocí příkazu CREATE ROLE a každé roli pečlivě udělit nejnižší oprávnění, které jsou nezbytná pro práci.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. Pokud je uživatel členem více rolí, všechna jejich oprávnění se agregují.When a user is a member of multiple roles, they aggregate the permissions of them all.

OprávněníPermissions

Ve službě SQL Database je dostupných více než 100 oprávnění, která můžete jednotlivě přidělit nebo zamítnout.There are over 100 permissions that can be individually granted or denied in SQL Database. Mnohá z těchto oprávnění jsou vnořená.Many of these permissions are nested. Oprávnění UPDATE pro schéma například zahrnuje oprávnění UPDATE pro každou tabulku v tomto schématu.For example, the UPDATE permission on a schema includes the UPDATE permission on each table within that schema. Podobně jako ve většině systémů oprávnění má zamítnutí oprávnění přednost před udělením oprávnění a přepíše ho.As in most permission systems, the denial of a permission overrides a grant. Kvůli velkému počtu oprávnění a používání vnořených oprávnění může návrh vhodného systému oprávnění vyžadovat pečlivou studii, aby byla vaše databáze dobře chráněna.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. Začněte seznamem oprávnění podle tématu Oprávnění (databázový stroj) a prohlédněte si plakát s přehledem oprávnění.Start with the list of permissions at Permissions (Database Engine) and review the poster size graphic of the permissions.

Důležité informace a omezeníConsiderations and restrictions

Při správě přihlášení a uživatelů ve službě SQL Database mějte na paměti následující:When managing logins and users in SQL Database, consider the following:

  • Když chcete provádět příkazy , musíte být připojeni k hlavníCREATE/ALTER/DROP DATABASE databázi.You must be connected to the master database when executing the CREATE/ALTER/DROP DATABASE statements.

  • Databázového uživatele, který odpovídá správci serveru, není možné změnit ani vyřadit.The database user corresponding to the Server admin login cannot be altered or dropped.

  • Výchozím jazykem přihlášení správce serveru je americká angličtina.US-English is the default language of the Server admin login.

  • Příkazy a mohou provádět jen správci (přihlášení správce serveru nebo správce Azure AD) a členové databázové role dbmanager v CREATE DATABASEhlavníDROP DATABASE databázi.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.

  • Při provádění příkazů CREATE/ALTER/DROP LOGIN musíte být připojení k hlavní databázi.You must be connected to the master database when executing the CREATE/ALTER/DROP LOGIN statements. Nedoporučuje se používat přihlášení.However using logins is discouraged. Použijte raději databázové uživatele s omezením.Use contained database users instead.

  • Pokud se chcete připojit k uživatelské databázi, musíte v připojovacím řetězci uvést název databáze.To connect to a user database, you must provide the name of the database in the connection string.

  • Příkazy , a mohou provádět jen hlavní přihlášení na úrovni serveru a členové databázové roleloginmanagerCREATE LOGIN v ALTER LOGINhlavníDROP LOGIN databázi.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.

  • Při provádění příkazů CREATE/ALTER/DROP LOGIN a CREATE/ALTER/DROP DATABASE v aplikaci ADO.NET není dovolené používat příkazy s parametry.When executing the CREATE/ALTER/DROP LOGIN and CREATE/ALTER/DROP DATABASE statements in an ADO.NET application, using parameterized commands is not allowed. Další informace viz Příkazy a parametry.For more information, see Commands and Parameters.

  • Při provádění příkazů CREATE/ALTER/DROP DATABASE a CREATE/ALTER/DROP LOGIN musí být každý příkaz jediným příkazem v dávce 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. V opačném případě dojde k chybě.Otherwise, an error occurs. Následující příkaz Transact-SQL například zkontroluje, jestli databáze existuje.For example, the following Transact-SQL checks whether the database exists. Pokud existuje, volá příkaz DROP DATABASE, který ji odebere.If it exists, a DROP DATABASE statement is called to remove the database. Příkaz DROP DATABASE ale není jediným příkazem v dávce, a proto provedení následujícího příkazu Transact-SQL způsobí chybu.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
    

    Místo toho použijte následující příkaz Transact-SQL:Instead, use the following Transact-SQL statement:

    DROP DATABASE IF EXISTS [database_name]
    
  • Při provádění příkazu CREATE USER s možností FOR/FROM LOGIN musí jít o jediný příkaz v dávce 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.

  • Při provádění příkazu ALTER USER s možností WITH LOGIN musí jít o jediný příkaz v dávce Transact-SQL.When executing the ALTER USER statement with the WITH LOGIN option, it must be the only statement in a Transact-SQL batch.

  • Pokud chcete použít příkaz CREATE/ALTER/DROP pro vytvoření, změnu nebo odstranění uživatele, musíte mít v databázi oprávnění ALTER ANY USER.To CREATE/ALTER/DROP a user requires the ALTER ANY USER permission on the database.

  • Pokud se vlastník databázové role pokusí přidat do této role jiného uživatele databáze (nebo ho z ní odebrat), může dojít k následující chybě: Uživatel nebo role „Jméno“ v této databázi neexistuje.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. Chyba je způsobená tím, že vlastník role daného uživatele nevidí.This error occurs because the user is not visible to the owner. Problém vyřešíte tak, že vlastníkovi role udělíte oprávnění VIEW DEFINITION pro daného uživatele.To resolve this issue, grant the role owner the VIEW DEFINITION permission on the user.

Další krokyNext steps