sp_addlogin (T-SQL)

Berlaku untuk:SQL Server

Membuat login SQL Server baru yang memungkinkan pengguna untuk terhubung ke instans SQL Server dengan menggunakan autentikasi SQL Server.

Penting

Fitur ini akan dihapus dalam versi SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini. Gunakan CREATE LOGIN sebagai gantinya.

Penting

Jika memungkinkan, gunakan autentikasi Windows.

Konvensi sintaks transact-SQL

Sintaks

sp_addlogin
    [ @loginame = ] N'loginame'
    [ , [ @passwd = ] N'passwd' ]
    [ , [ @defdb = ] N'defdb' ]
    [ , [ @deflanguage = ] N'deflanguage' ]
    [ , [ @sid = ] sid ]
    [ , [ @encryptopt = ] 'encryptopt' ]
[ ; ]

Argumen

[ @loginame = ] N'loginame'

Nama login. @loginame adalah sysname, tanpa default.

[ @passwd = ] N'passwd'

Kata sandi masuk. @passwd adalah sysname, dengan default NULL.

Penting

Jangan gunakan kata sandi kosong. Gunakan kata sandi yang kuat.

[ @defdb = ] N'defdb'

Database default login (database tempat login pertama kali tersambung setelah masuk). @defdb adalah sysname, dengan default master.

[ @deflanguage = ] N'deflanguage'

Bahasa default login. @deflanguage adalah sysname, dengan default NULL. Jika @deflanguage tidak ditentukan, @deflanguage default login baru diatur ke bahasa default server saat ini.

[ @sid = ] sid

Nomor identifikasi keamanan (SID). @sid adalah varbinary(16), dengan default NULL. Jika @sid adalah NULL, sistem menghasilkan SID untuk login baru. Terlepas dari penggunaan jenis data varbinary , nilai selain NULL harus persis 16 byte panjangnya, dan belum bisa ada. Menentukan @sid berguna, misalnya, saat Anda membuat skrip atau memindahkan login SQL Server dari satu server ke server lain dan Anda ingin login memiliki SID yang sama di server yang berbeda.

[ @encryptopt = ] 'encryptopt'

Menentukan apakah kata sandi diteruskan sebagai teks yang jelas atau sebagai hash kata sandi teks yang jelas. Tidak ada enkripsi yang terjadi. Kata "enkripsi" digunakan dalam diskusi ini demi kompatibilitas mundur. Jika kata sandi teks yang jelas diteruskan, kata sandi tersebut akan di-hash. Hash disimpan. @encryptopt adalah varchar(20), dan bisa menjadi salah satu nilai berikut.

Nilai Deskripsi
NULL (default) Kata sandi diteruskan dengan jelas.
skip_encryption Kata sandi sudah di-hash. Mesin Database harus menyimpan nilai tanpa mengulanginya.
skip_encryption_old Kata sandi yang disediakan di-hash oleh versi SQL Server yang lebih lama. Mesin Database harus menyimpan nilai tanpa mengulanginya. Opsi ini disediakan hanya untuk tujuan peningkatan.

Mengembalikan nilai kode

0 (berhasil) atau 1 (kegagalan).

Keterangan

Login SQL Server dapat berisi 1 hingga 128 karakter, termasuk huruf, simbol, dan angka. Login tidak boleh berisi garis miring terbalik (\); menjadi nama login yang dipesan, misalnya sa atau publik, atau sudah ada; atau menjadi NULL atau string kosong.

Jika nama database default disediakan, Anda dapat menyambungkan ke database yang ditentukan tanpa menjalankan USE pernyataan. Namun, Anda tidak dapat menggunakan database default hingga Anda diberi akses ke database tersebut oleh pemilik database (dengan menggunakan sp_adduser, sp_addrolemember), atau sp_addrole.

Nomor SID adalah GUID yang secara unik mengidentifikasi login di server.

Mengubah bahasa default server tidak mengubah bahasa default login yang ada. Untuk mengubah bahasa default server, gunakan sp_configure.

Menggunakan skip_encryption untuk menekan hash kata sandi berguna jika kata sandi sudah di-hash ketika login ditambahkan ke SQL Server. Jika kata sandi di-hash oleh versi SQL Server yang lebih lama, gunakan skip_encryption_old.

sp_addlogin tidak dapat dijalankan dalam transaksi yang ditentukan pengguna.

Tabel berikut ini memperlihatkan beberapa prosedur tersimpan yang digunakan dengan sp_addlogin.

Prosedur Tersimpan Deskripsi
sp_grantlogin Menambahkan pengguna atau grup Windows.
sp_password Mengubah kata sandi pengguna.
sp_defaultdb Mengubah database default pengguna.
sp_defaultlanguage Mengubah bahasa default pengguna.

Izin

Memerlukan izin UBAH LOGIN APA PUN.

Contoh

J. Membuat login SQL Server

Contoh berikut membuat login SQL Server untuk pengguna Victoria, dengan kata sandi B1r12-36, tanpa menentukan database default.

EXEC sp_addlogin 'Victoria', 'B1r12-36';
GO

B. Membuat login SQL Server yang memiliki database default

Contoh berikut membuat login SQL Server untuk pengguna Albert, dengan kata sandi B5432-3M6 dan database default .corporate

EXEC sp_addlogin 'Albert', 'B5432-3M6', 'corporate';
GO

C. Membuat login SQL Server yang memiliki bahasa default yang berbeda

Contoh berikut membuat login SQL Server untuk pengguna TzTodorov, dengan kata sandi 709hLKH7chjfwv, database AdventureWorks2022default , dan bahasa default .Bulgarian

EXEC sp_addlogin 'TzTodorov', '709hLKH7chjfwv', 'AdventureWorks2022', N'български'

D. Membuat login SQL Server yang memiliki SID tertentu

Contoh berikut membuat login SQL Server untuk pengguna Michael, dengan kata sandi B548bmM%f6, database default , AdventureWorks2022bahasa us_englishdefault , dan SID .0x0123456789ABCDEF0123456789ABCDEF

EXEC sp_addlogin 'Michael', 'B548bmM%f6', 'AdventureWorks2022', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF