CREATE USER (Transact-SQL)

Berlaku untuk: SQL Server (semua versi yang didukung) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Menambahkan pengguna ke database saat ini. 13 jenis pengguna tercantum di bawah ini dengan sampel sintaks yang paling mendasar:

Pengguna berdasarkan login di master - Ini adalah jenis pengguna yang paling umum.

  • Pengguna berdasarkan login berdasarkan akun Windows Active Directory. CREATE USER [Contoso\Fritz];
  • Pengguna berdasarkan login berdasarkan grup Windows. CREATE USER [Contoso\Sales];
  • Pengguna berdasarkan login menggunakan autentikasi SQL Server. CREATE USER Mary;
  • Pengguna berdasarkan login Azure AD. CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com]

    Catatan

    Prinsipal server (login) Azure Active Directory (Azure AD) saat ini berada dalam pratinjau publik untuk Azure SQL Database.

Pengguna yang mengautentikasi di database - Disarankan untuk membantu membuat database Anda lebih portabel.
Selalu diizinkan dalam SQL Database. Hanya diperbolehkan dalam database mandiri di SQL Server.

  • Pengguna berdasarkan pengguna Windows yang tidak memiliki login. CREATE USER [Contoso\Fritz];

  • Pengguna berdasarkan grup Windows yang tidak memiliki login. CREATE USER [Contoso\Sales];

  • Pengguna di SQL Database atau Azure Synapse Analytics berdasarkan pengguna Azure Active Directory. CREATE USER [Fritz@contoso.com] FROM EXTERNAL PROVIDER;

  • Pengguna database mandiri dengan kata sandi. (Tidak tersedia di Azure Synapse Analytics.)CREATE USER Mary WITH PASSWORD = '********';

Pengguna berdasarkan prinsipal Windows yang terhubung melalui login grup Windows

  • Pengguna berdasarkan pengguna Windows yang tidak memiliki login, tetapi dapat terhubung ke Mesin Database melalui keanggotaan di grup Windows. CREATE USER [Contoso\Fritz];

  • Pengguna berdasarkan grup Windows yang tidak memiliki login, tetapi dapat tersambung ke Mesin Database melalui keanggotaan di grup Windows yang berbeda. CREATE USER [Contoso\Fritz];

Pengguna yang tidak dapat mengautentikasi - Pengguna ini tidak dapat masuk ke SQL Server atau SQL Database.

  • Pengguna tanpa data masuk. Tak bisa masuk tetapi bisa diberikan izin. CREATE USER CustomApp WITHOUT LOGIN;
  • Pengguna berdasarkan sertifikat. Tidak dapat masuk tetapi dapat diberikan izin dan dapat menandatangani modul. CREATE USER TestProcess FOR CERTIFICATE CarnationProduction50;
  • Pengguna berdasarkan kunci asimetris. Tidak dapat masuk tetapi dapat diberikan izin dan dapat menandatangani modul. CREATE User TestProcess FROM ASYMMETRIC KEY PacificSales09;

Ikon tautan topikKonvensi Sintaks Transact-SQL

Sintaks

-- Syntax for SQL Server, Azure SQL Database, and Azure SQL Managed Instance
  
-- Syntax Users based on logins in master  
CREATE USER user_name   
    [   
        { FOR | FROM } LOGIN login_name   
    ]  
    [ WITH <limited_options_list> [ ,... ] ]   
[ ; ]  
  
-- Users that authenticate at the database  
CREATE USER   
    {  
      windows_principal [ WITH <options_list> [ ,... ] ]  
  
    | user_name WITH PASSWORD = 'password' [ , <options_list> [ ,... ]   
    | Azure_Active_Directory_principal FROM EXTERNAL PROVIDER
    }  
  
 [ ; ]  
  
-- Users based on Windows principals that connect through Windows group logins  
CREATE USER   
    {   
          windows_principal [ { FOR | FROM } LOGIN windows_principal ]  
        | user_name { FOR | FROM } LOGIN windows_principal  
}  
    [ WITH <limited_options_list> [ ,... ] ]   
[ ; ]  
  
-- Users that cannot authenticate   
CREATE USER user_name   
    {  
         WITHOUT LOGIN [ WITH <limited_options_list> [ ,... ] ]  
       | { FOR | FROM } CERTIFICATE cert_name   
       | { FOR | FROM } ASYMMETRIC KEY asym_key_name   
    }  
 [ ; ]  
  
<options_list> ::=  
      DEFAULT_SCHEMA = schema_name  
    | DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }  
    | SID = sid   
    | ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] ]  
  
<limited_options_list> ::=  
      DEFAULT_SCHEMA = schema_name ]   
    | ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] ]  
  
-- SQL Database syntax when connected to a federation member  
CREATE USER user_name  
[;]

-- Syntax for users based on Azure AD logins for Azure SQL Managed Instance
CREATE USER user_name   
    [   { FOR | FROM } LOGIN login_name  ]  
    | FROM EXTERNAL PROVIDER
    [ WITH <limited_options_list> [ ,... ] ]   
[ ; ]  

<limited_options_list> ::=  
      DEFAULT_SCHEMA = schema_name 
    | DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }   
    | ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] ] 

Catatan

Admin Azure AD untuk fungsionalitas Azure SQL Managed Instance setelah pembuatan berubah. Untuk informasi selengkapnya, lihat Fungsionalitas admin Azure AD baru untuk MI.

-- Syntax for Azure Synapse Analytics  
  
CREATE USER user_name   
    [ { { FOR | FROM } { LOGIN login_name }   
      | WITHOUT LOGIN  
    ]   
    [ WITH DEFAULT_SCHEMA = schema_name ]  
[;]

CREATE USER Azure_Active_Directory_principal FROM EXTERNAL PROVIDER  
    [ WITH DEFAULT_SCHEMA = schema_name ]  
[;]
-- Syntax for Parallel Data Warehouse  
  
CREATE USER user_name   
    [ { { FOR | FROM }  
      {   
        LOGIN login_name   
      }   
      | WITHOUT LOGIN  
    ]   
    [ WITH DEFAULT_SCHEMA = schema_name ]  
[;]  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

user_name

Menentukan nama tempat pengguna diidentifikasi di dalam database ini. user_name adalah sysname. Panjangnya bisa hingga 128 karakter. Saat membuat pengguna berdasarkan prinsipal Windows, nama utama Windows menjadi nama pengguna kecuali nama pengguna lain ditentukan.

login_name MASUK

Menentukan login tempat pengguna database sedang dibuat. login_name harus berupa login yang valid di server. Dapat berupa login berdasarkan prinsipal Windows (pengguna atau grup), login menggunakan autentikasi SQL Server, atau login menggunakan prinsipal Azure AD (pengguna, grup, atau aplikasi). Ketika SQL Server masuk ini memasuki database, ini memperoleh nama dan ID pengguna database yang sedang dibuat. Saat membuat login yang dipetakan dari prinsipal Windows, gunakan format [<domainName>\<loginName>] . Misalnya, lihat Ringkasan Sintaks.

Jika pernyataan CREATE USER adalah satu-satunya pernyataan dalam batch SQL, Azure SQL Database mendukung klausa WITH LOGIN. Jika pernyataan CREATE USER bukan satu-satunya pernyataan dalam batch SQL atau dijalankan dalam SQL dinamis, klausa WITH LOGIN tidak didukung.

WITH DEFAULT_SCHEMA = schema_name

Menentukan skema pertama yang akan dicari oleh server ketika menyelesaikan nama objek untuk pengguna database ini.

'windows_principal'

Menentukan prinsipal Windows tempat pengguna database sedang dibuat. Windows_principal bisa menjadi pengguna Windows, atau grup Windows. Pengguna akan dibuat meskipun windows_principal tidak memiliki login. Saat menyambungkan ke SQL Server, jika windows_principal tidak memiliki login, prinsipal Windows harus mengautentikasi di Mesin Database melalui keanggotaan di grup Windows yang memiliki login, atau string koneksi harus menentukan database yang terkandung sebagai katalog awal. Saat membuat pengguna dari prinsipal Windows, gunakan format [<domainName>\<loginName>] . Misalnya, lihat Ringkasan Sintaks. Pengguna berdasarkan pengguna Direktori Aktif, terbatas pada nama kurang dari 21 karakter.

'Azure_Active_Directory_principal'

Berlaku untuk: SQL Database, Instans Terkelola, Azure Synapse Analytics.

Menentukan prinsipal Azure Active Directory tempat pengguna database sedang dibuat. Azure_Active_Directory_principal dapat menjadi pengguna Azure Active Directory, grup Azure Active Directory, atau aplikasi Azure Active Directory. (Pengguna Azure Active Directory tidak dapat memiliki login Autentikasi Windows di SQL Database; hanya pengguna database.) String koneksi harus menentukan database mandiri sebagai katalog awal.

Untuk prinsipal Azure AD, sintaks CREATE USER memerlukan:

  • UserPrincipalName dari objek Azure AD untuk Pengguna Azure AD.

    • CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
    • CREATE USER [alice@fabrikam.onmicrosoft.com] FROM EXTERNAL PROVIDER;
  • Prinsipal server (login) Azure Active Directory (Azure AD) memperkenalkan pembuatan pengguna yang dipetakan untuk Azure AD masuk di database master virtual. CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com]

  • Azure AD pengguna dan perwakilan layanan (aplikasi Azure AD) yang merupakan anggota lebih dari 2048 Azure AD kelompok keamanan tidak didukung untuk masuk ke database di SQL Database, Instans Terkelola, atau Azure Synapse.

  • DisplayName objek Azure AD untuk Grup Azure AD dan Aplikasi Azure AD. Jika Anda memiliki kelompok keamanan Perawat , Anda akan menggunakan:

    • CREATE USER [Nurses] FROM EXTERNAL PROVIDER;

Untuk informasi selengkapnya, lihat Menyambungkan ke SQL Database Dengan Menggunakan Autentikasi Azure Active Directory.

WITH PASSWORD = 'password'

Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru, SQL Database.

Hanya dapat digunakan dalam database mandiri. Menentukan kata sandi untuk pengguna yang sedang dibuat. Dimulai dengan SQL Server 2012 (11.x), informasi kata sandi yang disimpan dihitung menggunakan SHA-512 dari kata sandi asin.

TANPA LOGIN

Menentukan bahwa pengguna tidak boleh dipetakan ke login yang ada.

CERT_NAME SERTIFIKAT

Berlaku untuk: SQL Server 2008 dan yang lebih baru, SQL Database.

Menentukan sertifikat tempat pengguna database sedang dibuat.

asym_key_name KUNCI ASIMETRIS

Berlaku untuk: SQL Server 2008 dan yang lebih baru, SQL Database.

Menentukan kunci asimetris tempat pengguna database sedang dibuat.

DEFAULT_LANGUAGE = { NONE | < Lcid> | < nama> bahasa | < bahasa salias> }

Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru, SQL Database.

Menentukan bahasa default untuk pengguna baru. Jika bahasa default ditentukan untuk pengguna dan bahasa default database kemudian diubah, bahasa default pengguna tetap seperti yang ditentukan. Jika tidak ada bahasa default yang ditentukan, bahasa default untuk pengguna akan menjadi bahasa default database. Jika bahasa default untuk pengguna tidak ditentukan dan bahasa default database kemudian diubah, bahasa default pengguna akan berubah ke bahasa default baru untuk database.

Penting

DEFAULT_LANGUAGE hanya digunakan untuk pengguna database mandiri.

SID = sid

Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru.

Hanya berlaku untuk pengguna dengan kata sandi (SQL Server autentikasi) dalam database mandiri. Menentukan SID pengguna database baru. Jika opsi ini tidak dipilih, SQL Server secara otomatis menetapkan SID. Gunakan parameter SID untuk membuat pengguna di beberapa database yang memiliki identitas (SID) yang sama. Ini berguna saat membuat pengguna di beberapa database untuk mempersiapkan failover AlwaysOn. Untuk menentukan SID pengguna, kueri sys.database_principals.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | NONAKTIF ]

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru, SQL Database.

Menekan pemeriksaan metadata kriptografi pada server dalam operasi penyalinan massal. Ini memungkinkan pengguna untuk menyalin data terenkripsi secara massal antara tabel atau database, tanpa mendekripsi data. Defaultnya adalah NONAKTIF.

Peringatan

Penggunaan opsi ini yang tidak tepat dapat menyebabkan kerusakan data. Untuk informasi selengkapnya, lihat Memigrasikan Data Sensitif yang Dilindungi oleh Always Encrypted.

DARI PENYEDIA EKSTERNAL

Berlaku untuk: SQL Database dan Instans Terkelola.
Menentukan bahwa pengguna adalah untuk Autentikasi Azure AD.

Keterangan

Jika FOR LOGIN dihilangkan, pengguna database baru akan dipetakan ke login SQL Server dengan nama yang sama.

Skema default akan menjadi skema pertama yang akan dicari oleh server ketika menyelesaikan nama objek untuk pengguna database ini. Kecuali ditentukan lain, skema default akan menjadi pemilik objek yang dibuat oleh pengguna database ini.

Jika pengguna memiliki skema default, skema default tersebut akan digunakan. Jika pengguna tidak memiliki skema default, tetapi pengguna adalah anggota grup yang memiliki skema default, skema default grup akan digunakan. Jika pengguna tidak memiliki skema default, dan merupakan anggota lebih dari satu grup, skema default untuk pengguna akan menjadi grup Windows dengan principal_id terendah dan secara eksplisit mengatur skema default. (Tidak dimungkinkan untuk secara eksplisit memilih salah satu skema default yang tersedia sebagai skema pilihan.) Jika tidak ada skema default yang dapat ditentukan untuk pengguna, skema dbo akan digunakan.

DEFAULT_SCHEMA dapat diatur sebelum skema yang dituju dibuat.

DEFAULT_SCHEMA tidak dapat ditentukan saat Anda membuat pengguna yang dipetakan ke sertifikat, atau kunci asimetris.

Nilai DEFAULT_SCHEMA diabaikan jika pengguna adalah anggota peran server tetap sysadmin. Semua anggota peran server tetap sysadmin memiliki skema dbodefault .

Klausa WITHOUT LOGIN membuat pengguna yang tidak dipetakan ke login SQL Server. Ini dapat tersambung ke database lain sebagai tamu. Izin dapat ditetapkan ke pengguna ini tanpa masuk dan ketika konteks keamanan diubah ke pengguna tanpa masuk, pengguna asli menerima izin pengguna tanpa masuk. Lihat contoh D. Membuat dan menggunakan pengguna tanpa login.

Hanya pengguna yang dipetakan ke prinsipal Windows yang dapat berisi karakter garis miring terbalik (\).

CREATE USER tidak dapat digunakan untuk membuat pengguna tamu karena pengguna tamu sudah ada di dalam setiap database. Anda dapat mengaktifkan pengguna tamu dengan memberinya izin CONNECT, seperti yang ditunjukkan:

GRANT CONNECT TO guest;  
GO  

Informasi tentang pengguna database terlihat dalam tampilan katalog sys.database_principals .

Ekstensi sintaks baru, FROM EXTERNAL PROVIDER tersedia untuk membuat login Azure AD tingkat server di Azure SQL Database dan Azure SQL Managed Instance. Azure AD login memungkinkan prinsipal Azure AD tingkat database dipetakan ke login Azure AD tingkat server. Untuk membuat pengguna Azure AD dari login Azure AD, gunakan sintaks berikut:

CREATE USER [AAD_principal] FROM LOGIN [Azure AD login]

Saat membuat pengguna di database Azure SQL, login_name harus sesuai dengan login Azure AD yang ada, atau jika tidak menggunakan klausul FROM EXTERNAL PROVIDER hanya akan membuat pengguna Azure AD tanpa login di database master. Misalnya, perintah ini akan membuat pengguna mandiri:

CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER

Ringkasan Sintaks

Pengguna berdasarkan login di master

Daftar berikut menunjukkan kemungkinan sintaks untuk pengguna berdasarkan login. Opsi skema default tidak tercantum.

  • CREATE USER [Domain1\WindowsUserBarry]
  • CREATE USER [Domain1\WindowsUserBarry] FOR LOGIN Domain1\WindowsUserBarry
  • CREATE USER [Domain1\WindowsUserBarry] FROM LOGIN Domain1\WindowsUserBarry
  • CREATE USER [Domain1\WindowsGroupManagers]
  • CREATE USER [Domain1\WindowsGroupManagers] FOR LOGIN [Domain1\WindowsGroupManagers]
  • CREATE USER [Domain1\WindowsGroupManagers] FROM LOGIN [Domain1\WindowsGroupManagers]
  • CREATE USER SQLAUTHLOGIN
  • CREATE USER SQLAUTHLOGIN FOR LOGIN SQLAUTHLOGIN
  • CREATE USER SQLAUTHLOGIN FROM LOGIN SQLAUTHLOGIN

Pengguna yang mengautentikasi di database

Daftar berikut ini memperlihatkan kemungkinan sintaks untuk pengguna yang hanya dapat digunakan dalam database mandiri. Pengguna yang dibuat tidak akan terkait dengan login apa pun di database master . Opsi skema dan bahasa default tidak tercantum.

Penting

Sintaks ini memberi pengguna akses ke database dan juga memberikan akses baru ke Mesin Database.

  • CREATE USER [Domain1\WindowsUserBarry]
  • CREATE USER [Domain1\WindowsGroupManagers]
  • CREATE USER Barry WITH PASSWORD = 'sdjklalie8rew8337!$d'

Pengguna berdasarkan prinsipal Windows tanpa masuk di master

Daftar berikut ini memperlihatkan kemungkinan sintaks untuk pengguna yang memiliki akses ke Mesin Database melalui grup Windows tetapi tidak memiliki login di master. Sintaks ini dapat digunakan di semua jenis database. Opsi skema dan bahasa default tidak tercantum.

Sintaks ini mirip dengan pengguna berdasarkan login di master, tetapi kategori pengguna ini tidak memiliki login di master. Pengguna harus memiliki akses ke Mesin Database melalui login grup Windows.

Sintaks ini mirip dengan pengguna database mandiri berdasarkan prinsipal Windows, tetapi kategori pengguna ini tidak mendapatkan akses baru ke Mesin Database.

  • CREATE USER [Domain1\WindowsUserBarry]
  • CREATE USER [Domain1\WindowsUserBarry] FOR LOGIN Domain1\WindowsUserBarry
  • CREATE USER [Domain1\WindowsUserBarry] FROM LOGIN Domain1\WindowsUserBarry
  • CREATE USER [Domain1\WindowsGroupManagers]
  • CREATE USER [Domain1\WindowsGroupManagers] FOR LOGIN [Domain1\WindowsGroupManagers]
  • CREATE USER [Domain1\WindowsGroupManagers] FROM LOGIN [Domain1\WindowsGroupManagers]

Pengguna yang tidak dapat mengautentikasi

Daftar berikut ini memperlihatkan kemungkinan sintaks untuk pengguna yang tidak dapat masuk ke SQL Server.

  • CREATE USER RIGHTSHOLDER WITHOUT LOGIN
  • CREATE USER CERTUSER FOR CERTIFICATE SpecialCert
  • CREATE USER CERTUSER FROM CERTIFICATE SpecialCert
  • CREATE USER KEYUSER FOR ASYMMETRIC KEY SecureKey
  • CREATE USER KEYUSER FROM ASYMMETRIC KEY SecureKey

Keamanan

Membuat pengguna memberikan akses ke database tetapi tidak secara otomatis memberikan akses apa pun ke objek dalam database. Setelah membuat pengguna, tindakan umum adalah menambahkan pengguna ke peran database yang memiliki izin untuk mengakses objek database, atau memberikan izin objek kepada pengguna. Untuk informasi tentang mendesain sistem izin, lihat Mulai Menggunakan Izin Mesin Database.

Pertimbangan Khusus untuk Database Mandiri

Saat menyambungkan ke database mandiri, jika pengguna tidak memiliki login di database master , string koneksi harus menyertakan nama database yang terkandung sebagai katalog awal. Parameter katalog awal selalu diperlukan untuk pengguna database mandiri dengan kata sandi.

Dalam database mandiri, membuat pengguna membantu memisahkan database dari instans Mesin Database sehingga database dapat dengan mudah dipindahkan ke instans SQL Server lain. Untuk informasi selengkapnya, lihat Database Mandiri dan Pengguna Database Mandiri - Membuat Database Anda Portabel. Untuk mengubah pengguna database dari pengguna berdasarkan login autentikasi SQL Server ke pengguna database mandiri dengan kata sandi, lihat sp_migrate_user_to_contained (Transact-SQL).

Dalam database mandiri, pengguna tidak harus memiliki login di database master . Administrator Mesin Database harus memahami bahwa akses ke database mandiri dapat diberikan di tingkat database, bukan tingkat Mesin Database. Untuk informasi selengkapnya, lihat Praktik Terbaik Keamanan dengan Database Mandiri.

Saat menggunakan pengguna database mandiri di Azure SQL Database, konfigurasikan akses menggunakan aturan firewall tingkat database, bukan aturan firewall tingkat server. Untuk informasi selengkapnya, lihat sp_set_database_firewall_rule (Azure SQL Database).

Untuk pengguna database yang terkandung SQL Database dan Azure Synapse Analytics, SSMS dapat mendukung Autentikasi Multifaktor. Untuk informasi selengkapnya, lihat Dukungan SSMS untuk Azure AD MFA dengan SQL Database dan Azure Synapse Analytics.

Izin

Memerlukan izin UBAH PENGGUNA APA PUN pada database.

Contoh

A. Membuat pengguna database berdasarkan login SQL Server

Contoh berikut pertama kali membuat login SQL Server bernama AbolrousHazem, lalu membuat pengguna AbolrousHazem database yang sesuai di AdventureWorks2012.

CREATE LOGIN AbolrousHazem   
    WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';  

Ubah ke database pengguna. Misalnya, dalam SQL Server gunakan USE AdventureWorks2012 pernyataan . Di Azure Synapse Analytics and Analytics Platform System (PDW), Anda harus membuat koneksi baru ke database pengguna.

CREATE USER AbolrousHazem FOR LOGIN AbolrousHazem;  
GO   

B. Membuat pengguna database dengan skema default

Contoh berikut pertama-tama membuat login server bernama WanidaBenshoof dengan kata sandi, lalu membuat pengguna Wanidadatabase yang sesuai , dengan skema Marketingdefault .

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

C. Membuat pengguna database dari sertifikat

Contoh berikut membuat pengguna JinghaoLiu database dari sertifikat CarnationProduction50.

Berlaku untuk: SQL Server 2008 dan yang lebih baru.

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

D. Membuat dan menggunakan pengguna tanpa login

Contoh berikut membuat pengguna CustomApp database yang tidak memetakan ke login SQL Server. Contoh kemudian memberikan izin pengguna adventure-works\tengiz0 untuk meniru CustomApp pengguna.

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

Untuk menggunakan CustomApp kredensial, pengguna adventure-works\tengiz0 menjalankan pernyataan berikut.

EXECUTE AS USER = 'CustomApp' ;  
GO  

Untuk kembali ke adventure-works\tengiz0 kredensial, pengguna menjalankan pernyataan berikut.

REVERT ;  
GO  

E. Membuat pengguna database mandiri dengan kata sandi

Contoh berikut membuat pengguna database mandiri dengan kata sandi. Contoh ini hanya dapat dijalankan dalam database mandiri.

Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru. Contoh ini berfungsi di SQL Database jika DEFAULT_LANGUAGE dihapus.

USE AdventureWorks2012 ;  
GO  
CREATE USER Carlo  
WITH PASSWORD='RN92piTCh%$!~3K9844 Bl*'  
    , DEFAULT_LANGUAGE=[Brazilian]  
    , DEFAULT_SCHEMA=[dbo]  
GO   

F. Membuat pengguna database mandiri untuk login domain

Contoh berikut membuat pengguna database mandiri untuk login bernama Fritz di domain bernama Contoso. Contoh ini hanya dapat dijalankan dalam database mandiri.

Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru.

USE AdventureWorks2012 ;  
GO  
CREATE USER [Contoso\Fritz] ;  
GO   

G. Membuat pengguna database mandiri dengan SID tertentu

Contoh berikut membuat pengguna database mandiri terautentikasi SQL Server bernama CarmenW. Contoh ini hanya dapat dijalankan dalam database mandiri.

Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru.

USE AdventureWorks2012 ;  
GO  
CREATE USER CarmenW WITH PASSWORD = 'a8ea v*(Rd##+'  
, SID = 0x01050000000000090300000063FF0451A9E7664BA705B10E37DDC4B7;

H. Membuat pengguna untuk menyalin data terenkripsi

Contoh berikut membuat pengguna yang bisa menyalin data yang dilindungi oleh fitur Always Encrypted dari satu set tabel, berisi kolom terenkripsi, ke kumpulan tabel lain dengan kolom terenkripsi (dalam database yang sama atau berbeda). Untuk informasi selengkapnya, lihat Memigrasikan Data Sensitif yang Dilindungi oleh Always Encrypted.

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru, SQL Database.

CREATE USER [Chin]   
WITH   
      DEFAULT_SCHEMA = dbo  
    , ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = ON ;  

i. Membuat pengguna Azure AD dari login Azure AD di Azure SQL

Untuk membuat pengguna Microsoft Azure AD dari login Microsoft Azure AD, gunakan sintaksis berikut.

Masuk ke server SQL atau instans terkelola Anda dengan login Azure AD yang diberikan dengan sysadmin peran dalam instans terkelola, atau loginmanager peran dalam SQL Database. Berikut ini membuat pengguna bob@contoso.comAzure AD , dari login bob@contoso.com. Login ini dibuat dalam contoh CREATE LOGIN .

CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com];
GO

Penting

Saat membuat USER dari login Azure AD, tentukan user_name sebagai login_name yang sama dari LOGIN.

Membuat pengguna Azure AD sebagai grup dari login Azure AD yang merupakan grup didukung.

CREATE USER [AAD group] FROM LOGIN [AAD group];
GO

Anda juga dapat membuat pengguna Azure AD dari login Azure AD yang merupakan grup.

CREATE USER [bob@contoso.com] FROM LOGIN [AAD group];
GO

j. Membuat pengguna Azure AD tanpa login Azure AD untuk database

Sintaks berikut digunakan untuk membuat pengguna bob@contoso.comAzure AD , dalam database SQL Managed Instance (pengguna mandiri):

CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
GO

Langkah berikutnya

Setelah pengguna dibuat, pertimbangkan untuk menambahkan pengguna ke peran database menggunakan pernyataan ALTER ROLE .
Anda mungkin juga ingin MEMBERIKAN Izin Objek ke peran sehingga mereka dapat mengakses tabel. Untuk informasi umum tentang model keamanan SQL Server, lihat Izin.

Lihat juga

Membuat Pengguna Database
sys.database_principals (Transact-SQL)
ALTER USER (Transact-SQL)
DROP USER (Transact-SQL)
CREATE LOGIN (Transact-SQL)
EVENTDATA (Transact-SQL)
Database Mandiri
Menyambungkan ke SQL Database Menggunakan Autentikasi Azure Active Directory
Mulai Menggunakan Izin Mesin Database