Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Database Azure
SQLDatabase SQL di Microsoft Fabric
Mengaktifkan izin yang terkait dengan peran aplikasi dalam database saat ini.
Sintaks
sp_setapprole
[ @rolename = ] N'rolename'
, [ @password = ] N'password'
[ , [ @encrypt = ] 'encrypt' ]
[ , [ @fCreateCookie = ] fCreateCookie ]
[ , [ @cookie = ] cookie OUTPUT ]
[ ; ]
Argumen
[ @rolename = ] N'rolename'
Nama peran aplikasi yang ditentukan dalam database saat ini. @rolename adalah sysname, tanpa default. @rolename harus ada di database saat ini.
[ @password = ] { encrypt N'password' }
Kata sandi yang diperlukan untuk mengaktifkan peran aplikasi.
@password adalah sysname, tanpa default.
@password dapat dikaburkan dengan menggunakan fungsi ODBCencrypt. Saat Anda menggunakan encrypt fungsi , kata sandi harus dikonversi ke string Unicode dengan menempatkan N sebelum tanda kutip pertama.
Opsi enkripsi tidak didukung pada koneksi yang menggunakan SqlClient.
Penting
Fungsi ODBC encrypt tidak menyediakan enkripsi. Anda tidak boleh mengandalkan fungsi ini untuk melindungi kata sandi yang dikirimkan melalui jaringan. Jika informasi ini akan dikirimkan di seluruh jaringan, gunakan TLS atau IPSec.
[ @encrypt = ] { 'tidak ada' | 'ODBC' }
Menentukan jenis enkripsi sebelum mengirim kata sandi ke Mesin Database SQL Server. @encrypt adalah varchar(10), dan bisa menjadi salah satu nilai ini.
| Nilai | Deskripsi |
|---|---|
none (standar) |
Menentukan bahwa tidak ada obfuscation yang digunakan. Kata sandi diteruskan ke SQL Server sebagai teks biasa. |
odbc |
Menentukan bahwa ODBC mengaburkan kata sandi dengan menggunakan fungsi ODBC encrypt sebelum mengirim kata sandi ke Mesin Database SQL Server. Nilai ini hanya dapat ditentukan saat Anda menggunakan klien ODBC atau Penyedia OLE DB untuk SQL Server. |
[ @fCreateCookie = ] { 'benar' | 'salah' }
Menentukan apakah cookie akan dibuat.
@fCreateCookie adalah bit, dengan default .0
true secara implisit dikonversi ke 1.
false secara implisit dikonversi ke 0.
[ @cookie = ] OUTPUT cookie
Menentukan parameter output untuk memuat cookie.
@cookie adalah parameter OUTPUT dari jenis varbinary(8000). Cookie dihasilkan hanya jika nilai @fCreateCookie adalah true.
Catatan
Meskipun implementasi saat ini mengembalikan varbinary(50), aplikasi harus memesan varbinary (8000) yang didokumenkan, sehingga aplikasi terus beroperasi dengan benar jika ukuran pengembalian cookie meningkat dalam rilis mendatang.
Mengembalikan nilai kode
0 (berhasil) dan 1 (kegagalan).
Keterangan
Setelah peran aplikasi diaktifkan dengan menggunakan sp_setapprole, peran tetap aktif sampai pengguna memutuskan sambungan dari server atau menjalankan sp_unsetapprole. Anda tidak dapat menggunakan sp_setapprole dalam prosedur tersimpan lain, pemicu, atau dalam transaksi yang ditentukan pengguna. Ini hanya dapat dijalankan sebagai pernyataan Transact-SQL langsung.
Untuk gambaran umum peran aplikasi, lihat Peran Aplikasi.
Anda harus selalu menggunakan koneksi terenkripsi saat mengaktifkan peran aplikasi, untuk melindungi kata sandi peran aplikasi saat Anda mengirimkannya melalui jaringan.
Opsi Microsoft ODBC encrypt tidak didukung oleh SqlClient. Jika Anda harus menyimpan kredensial, enkripsi dengan fungsi API kripto. Parameter @password disimpan sebagai hash satu arah. Untuk mempertahankan kompatibilitas dengan versi SQL Server yang lebih lama, sp_addapprole jangan terapkan kebijakan kompleksitas kata sandi. Untuk menerapkan kebijakan kompleksitas kata sandi, gunakan CREATE APPLICATION ROLE.
Izin
Memerlukan keanggotaan di publik dan pengetahuan tentang kata sandi untuk peran tersebut.
Contoh
J. Mengaktifkan peran aplikasi tanpa opsi enkripsi
Contoh berikut mengaktifkan peran aplikasi bernama SalesAppRole, dibuat dengan izin yang dirancang untuk aplikasi yang digunakan oleh pengguna saat ini. Ganti <password> dengan kata sandi yang kuat.
EXECUTE sys.sp_setapprole 'SalesApprole', '<password>';
GO
B. Mengaktifkan peran aplikasi dengan cookie lalu kembali ke konteks asli
Contoh berikut mengaktifkan Sales11 peran aplikasi, dan membuat cookie. Contoh mengembalikan nama pengguna saat ini, lalu kembali ke konteks asli dengan mengeksekusi sp_unsetapprole. Ganti <password> dengan kata sandi yang kuat.
DECLARE @cookie AS VARBINARY (8000);
EXECUTE sys.sp_setapprole
'Sales11',
'<password>',
@fCreateCookie = true,
@cookie = @cookie OUTPUT;
Peran aplikasi sekarang aktif.
USER_NAME() mengembalikan nama peran aplikasi, Sales11.
SELECT USER_NAME();
Batalkan set peran aplikasi.
EXECUTE sys.sp_unsetapprole @cookie;
GO
Peran aplikasi tidak lagi aktif. Konteks asli dipulihkan.
USER_NAME() mengembalikan nama pengguna asli.
SELECT USER_NAME();
GO