CREATE USER (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

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

Catatan

Meskipun MICROSOFT Entra ID adalah nama baru untuk Azure Active Directory (Azure AD), untuk mencegah mengganggu lingkungan yang ada, Azure AD masih tetap berada di beberapa elemen yang dikodekan secara permanen seperti bidang UI, penyedia koneksi, kode kesalahan, dan cmdlet. Dalam artikel ini, dua nama tersebut dapat dipertukarkan.

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 Microsoft Entra. CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com]

    Catatan

    Prinsipal server Microsoft Entra (login) 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 di SQL Database. Hanya diizinkan 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 Microsoft Entra. 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 tersambung 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. Tidak dapat masuk tetapi dapat 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;

Konvensi sintaks transact-SQL

Sintaksis

-- 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> [ ,... ]   
    | Microsoft_Entra_principal FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] 
    }  
  
 [ ; ]  
  
-- 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 Microsoft Entra 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 ] ] 
-- Syntax for Azure Synapse Analytics  
  
CREATE USER user_name   
    [ { { FOR | FROM } { LOGIN login_name }   
      | WITHOUT LOGIN  
    ]   
    [ WITH DEFAULT_SCHEMA = schema_name ]  
[;]

CREATE USER Microsoft_Entra_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 (12.x) dan versi 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 LOGIN

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 perwakilan Microsoft Entra (pengguna, grup, atau aplikasi). Ketika masuk SQL Server ini memasuki database, SQL Server 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.

'Microsoft_Entra_principal'

Berlaku untuk: SQL Database, SQL Managed Instance, Azure Synapse Analytics.

Menentukan perwakilan Microsoft Entra tempat pengguna database sedang dibuat. Microsoft_Entra_principal dapat berupa pengguna Microsoft Entra, grup Microsoft Entra, atau aplikasi Microsoft Entra. (Pengguna Microsoft Entra tidak dapat memiliki login Autentikasi Windows di SQL Database; hanya pengguna database.) string koneksi harus menentukan database yang terkandung sebagai katalog awal.

Untuk perwakilan Microsoft Entra, sintaks CREATE USER memerlukan:

  • UserPrincipalName dari objek Microsoft Entra untuk Pengguna Microsoft Entra.

    • CREATE USER [bob@contoso.com] FROM EXTERNAL PROVIDER;
    • CREATE USER [alice@fabrikam.onmicrosoft.com] FROM EXTERNAL PROVIDER;
  • Prinsipal server Microsoft Entra (login) memperkenalkan pembuatan pengguna yang dipetakan ke login Microsoft Entra di database master virtual. CREATE USER [bob@contoso.com] FROM LOGIN [bob@contoso.com]

  • Pengguna Microsoft Entra dan perwakilan layanan (aplikasi) yang merupakan anggota lebih dari 2048 grup keamanan Microsoft Entra tidak didukung untuk masuk ke database di Azure SQL Database, Azure SQL Managed Instance, atau Azure Synapse.

  • DisplayName objek Microsoft Entra untuk grup Microsoft Entra dan Aplikasi Microsoft Entra. Jika Anda memiliki kelompok keamanan Perawat , Anda akan menggunakan:

    • CREATE USER [Nurses] FROM EXTERNAL PROVIDER;

Untuk informasi selengkapnya, lihat Koneksi ke SQL Database Dengan menggunakan autentikasi Microsoft Entra.

WITH PASSWORD = 'password'

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

Hanya dapat digunakan dalam database yang terkandung. Menentukan kata sandi untuk pengguna yang sedang dibuat. Dimulai dengan SQL Server 2012 (11.x), informasi kata sandi tersimpan 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 (10.0.x) dan yang lebih baru, SQL Database.

Menentukan sertifikat tempat pengguna database sedang dibuat.

ASYM_KEY_NAME KUNCI ASIMETRIS

Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru, SQL Database.

Menentukan kunci asimetris tempat pengguna database sedang dibuat.

DEFAULT_LANGUAGE = { NONE | <lcid> | <nama> bahasa | <salia> bahasa }

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 menjadi 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 (autentikasi SQL Server) 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 = [ AKTIF | 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 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 Azure SQL Managed Instance.

Menentukan bahwa pengguna adalah untuk autentikasi Microsoft Entra.

WITH OBJECT_ID = 'objectid'

Berlaku untuk: SQL Database dan Azure SQL Managed Instance. Menentukan ID Objek Microsoft Entra. OBJECT_ID Jika ditentukan, user_name dapat menjadi alias yang ditentukan pengguna yang dibentuk dari nama tampilan utama asli dengan akhiran ditambahkan. user_name harus berupa nama unik dalam sys.database_principals tampilan dan mematuhi semua batasan lainnya sysname . Untuk informasi selengkapnya tentang menggunakan WITH OBJECT_ID opsi ini, lihat Login Microsoft Entra dan pengguna dengan nama tampilan nonunique.

Catatan

Jika nama tampilan perwakilan layanan bukan duplikat, default CREATE LOGIN atau CREATE USER pernyataan harus digunakan. WITH OBJECT_ID Ekstensi berada dalam pratinjau publik, dan merupakan item perbaikan pemecahan masalah yang diterapkan untuk digunakan dengan perwakilan layanan nonunique. Menggunakannya dengan perwakilan layanan unik tidak disarankan. WITH OBJECT_ID Menggunakan ekstensi untuk perwakilan layanan tanpa menambahkan akhiran akan berjalan dengan sukses, tetapi tidak akan jelas perwakilan layanan mana yang dibuat oleh login atau pengguna. Disarankan untuk membuat alias menggunakan akhiran untuk mengidentifikasi perwakilan layanan secara unik. WITH OBJECT_ID Ekstensi tidak didukung untuk SQL Server.

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 adalah grup Windows dengan principal_id terendah dan skema default yang ditetapkan secara eksplisit. (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 menunjuk ke 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 login dan ketika konteks keamanan diubah ke pengguna tanpa login, pengguna asli menerima izin pengguna tanpa login. 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 memberikannya izin CONNECT, seperti yang ditunjukkan:

GRANT CONNECT TO guest;  
GO  

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

Gunakan ekstensi FROM EXTERNAL PROVIDER sintaks untuk membuat login Microsoft Entra tingkat server di Azure SQL Database dan Azure SQL Managed Instance. Login Microsoft Entra memungkinkan perwakilan Microsoft Entra tingkat database dipetakan ke login Microsoft Entra tingkat server. Untuk membuat pengguna Microsoft Entra dari login Microsoft Entra, gunakan sintaks berikut:

CREATE USER [Microsoft_Entra_principal] FROM LOGIN [Microsoft Entra login]

Saat membuat pengguna di database Azure SQL, login_name harus sesuai dengan login Microsoft Entra yang ada, atau menggunakan klausul FROM EXTERNAL PROVIDER hanya akan membuat pengguna Microsoft Entra tanpa masuk 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 Yang Terkandung

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 Terkandung - 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 dalam 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 Terkandung.

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 SQL Server 2022 (16.x), SQL Database, Azure SQL Managed Instance, dan Azure Synapse Analytics berisi pengguna database, SSMS mendukung autentikasi multifaktor. Untuk informasi selengkapnya, lihat Menggunakan autentikasi multifaktor Microsoft Entra.

Izin

Memerlukan izin UBAH PENGGUNA APA PUN pada database.

Izin untuk SQL Server 2022 dan yang lebih baru

Memerlukan izin CREATE USER pada database.

Contoh

J. Membuat pengguna database berdasarkan login SQL Server

Contoh berikut pertama-tama membuat login SQL Server bernama AbolrousHazem, lalu membuat pengguna AbolrousHazem database yang sesuai di AdventureWorks2022.

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

Ubah ke database pengguna. Misalnya, di SQL Server gunakan USE AdventureWorks2022 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 AdventureWorks2022;  
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 (10.0.x) dan yang lebih baru.

USE AdventureWorks2022;  
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 AdventureWorks2022;  
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 yang terkandung.

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

USE AdventureWorks2022;  
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 yang terkandung.

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

USE AdventureWorks2022;  
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 yang terkandung.

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

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

H. Membuat pengguna untuk menyalin data terenkripsi

Contoh berikut membuat pengguna yang dapat menyalin data yang dilindungi oleh fitur Always Encrypted dari satu set tabel, yang 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 Microsoft Entra dari login Microsoft Entra di Azure SQL

Untuk membuat pengguna Microsoft Entra dari login Microsoft Entra, gunakan sintaks berikut.

Masuk ke server logis Anda di Azure atau SQL Managed Instance menggunakan login Microsoft Entra memberikan sysadmin peran dalam SQL Managed Instance, atau loginmanager peran dalam SQL Database. Berikut ini membuat pengguna bob@contoso.comMicrosoft Entra , 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 PENGGUNA dari login Microsoft Entra, tentukan user_name sebagai login_name yang sama dari LOGIN.

Membuat pengguna Microsoft Entra sebagai grup dari login Microsoft Entra yang merupakan grup didukung.

CREATE USER [MS Entra group] FROM LOGIN [MS Entra group];

GO

Anda juga dapat membuat pengguna Microsoft Entra dari login Microsoft Entra yang merupakan grup.

CREATE USER [bob@contoso.com] FROM LOGIN [MS Entra group];

GO

j. Membuat pengguna database mandiri dari perwakilan Microsoft Entra

Sintaks berikut membuat pengguna bob@contoso.comMicrosoft Entra , dalam database tanpa login terkait di master:

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.

Membuat Pengguna Database
sys.database_principals (T-SQL)
ALTER USER (Transact-SQL)
DROP USER (Transact-SQL)
CREATE LOGIN (Transact-SQL)
EVENTDATA (Transact-SQL)
Database Terkandung
Koneksi ke SQL Database Menggunakan autentikasi Microsoft Entra
Mulai menggunakan Izin Mesin Database