Udostępnij za pośrednictwem


CREATE USER (języka Transact-SQL)

Dodaje użytkownika do bieżącej bazy danych.

Topic link iconKonwencje składni języka Transact-SQL

CREATE USER user_name 
    [ { { FOR | FROM }
      { 
        LOGIN login_name 
        | CERTIFICATE cert_name 
        | ASYMMETRIC KEY asym_key_name
      } 
      | WITHOUT LOGIN
    ] 
    [ WITH DEFAULT_SCHEMA = schema_name ]

Argumenty

  • user_name
    Specifies the name by which the user is identified inside this database.user_name is a sysname.Można go do 128 znaków.

  • LOGIN login_name
    Specifies the SQL Server login for which the database user is being created.login_name must be a valid login in the server.Gdy to SQL Server Identyfikator logowania wprowadza zdobędzie nazwy i IDENTYFIKATORA użytkownika bazy danych, które Trwa tworzenie bazy danych.

  • ŚWIADECTWO cert_name
    Określa certyfikat, dla którego utworzony użytkownik bazy danych.

  • klucz asymetrycznego asym_key_name
    Określa klucz asymetrycznego, dla którego utworzony użytkownik bazy danych.

  • WITH DEFAULT_SCHEMA **=**schema_name
    Określa pierwszy schematu, które będą przeszukiwane przez serwer, kiedy jest rozwiązywana jako nazwy obiektów dla tego użytkownika bazy danych.

  • BEZ LOGOWANIA
    Określa, że użytkownik nie powinien być mapowane do istniejącego identyfikatora logowania.

Remarks

W przypadku pominięcia LOGIN dla nowego użytkownika bazy danych będą mapowane do SQL Server logowanie o tej samej nazwie.

Jeśli pozostanie DEFAULT_SCHEMA niezdefiniowana, użytkownik bazy danych będzie używał dbo jako swojego domyślnego schematu.zestaw DEFAULT_SCHEMA schematu, które obecnie nie istnieje w bazie danych.Przed utworzeniem schematu, który wskazuje, zestaw DEFAULT_SCHEMA.Nie można określić DEFAULT_SCHEMA, podczas tworzenia użytkownika mapowany do grupy systemu Windows, certyfikat lub klucz asymetryczne.

Important noteImportant Note:

Wartość DEFAULT_SCHEMA jest ignorowany, jeśli użytkownik jest członkiem sysadmin stała rola serwera.Wszyscy członkowie sysadmin, ustala rolę serwera mają domyślnego schematu z dbo.

Klauzula LOGIN nie tworzy użytkownika, który nie jest mapowany do konto logowania do programu SQL Server.Można podłączyć się do innych baz danych jako Gość.

Nazwy użytkowników, które są mapowane do SQL Server identyfikatory logowania, certyfikaty lub klucze asymetryczne nie może zawierać znaku kreski ułamkowej odwróconej (\).

CREATE USER nie można użyć do utworzenia użytkownika Gość, ponieważ użytkownik Gość jest już wewnątrz każdej bazy danych.Użytkownik Gość można włączyć udzielając uprawnień CONNECT, jak pokazano:

GRANT CONNECT TO guest;
GO

Informacje na temat użytkowników bazy danych są widoczne w sys.database_principals Służy do wyświetlania katalogu.

Ostrzeżenie

Beginning with SQL Server 2005, the behavior of schemas changed. As a result, code that assumes that schemas are equivalent to database users may no longer return correct results. Old catalog views, including sysobjects, should not be used in a database in which any of the following DDL statements have 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. In such databases you must instead use the new catalog views. The new catalog views take into account the separation of principals and schemas that was introduced in SQL Server 2005. For more information about catalog views, see Catalog Views (Transact-SQL).

Uprawnienia

Wymaga ALTER USER bez uprawnień do bazy danych.

Przykłady

A.Tworzenie użytkownika bazy danych

W poniższym przykładzie najpierw tworzy identyfikator logowania serwera o nazwie AbolrousHazem przy użyciu hasła a następnie tworzy odpowiedniego użytkownika bazy danych AbolrousHazem w AdventureWorks.

CREATE LOGIN AbolrousHazem 
    WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';
USE AdventureWorks;
CREATE USER AbolrousHazem FOR LOGIN AbolrousHazem;
GO 

B.Tworzenie użytkowników bazy danych przy użyciu domyślnego schematu

W poniższym przykładzie najpierw tworzy identyfikator logowania serwera o nazwie WanidaBenshoof przy użyciu hasła a następnie tworzy odpowiedniego użytkownika bazy danych Wanida, z domyślnego schematu Marketing.

CREATE LOGIN WanidaBenshoof 
    WITH PASSWORD = '8fdKJl3$nlNv3049jsKK';
USE AdventureWorks;
CREATE USER Wanida FOR LOGIN WanidaBenshoof 
    WITH DEFAULT_SCHEMA = Marketing;
GO

C.Tworzenie użytkowników bazy danych przy użyciu certyfikat

W poniższym przykładzie tworzone przez użytkownika bazy danych JinghaoLiu z certyfikat CarnationProduction50.

USE AdventureWorks;
CREATE CERTIFICATE CarnationProduction50
    WITH SUBJECT = 'Carnation Production Facility Supervisors',
    EXPIRY_DATE = '11/11/2011';
GO
CREATE USER JinghaoLiu FOR CERTIFICATE CarnationProduction50;
GO 

D.Tworzenie i używanie użytkownika bez identyfikatora logowania

W poniższym przykładzie tworzone przez użytkownika bazy danych CustomApp które nie mapuje się do SQL Server Zaloguj się. W przykładzie następnie udziela użytkownikowi adventure-works\tengiz0 uprawnienie do personifikacji CustomApp użytkownik.

USE AdventureWorks ;
CREATE USER CustomApp WITHOUT LOGIN ;
GRANT IMPERSONATE ON USER::CustomApp TO [adventure-works\tengiz0] ;
GO 

Aby użyć CustomApp poświadczenia użytkownika adventure-works\tengiz0 wykonuje następujące instrukcja.

EXECUTE AS USER = 'CustomApp' ;
GO

Aby powrócić do adventure-works\tengiz0 poświadczenia, użytkownik wykonuje następującą instrukcję.

REVERT ;
GO

Historia zmian

Microsoft Learning

Dodano przykład D.