Peran Aplikasi
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Peran aplikasi adalah prinsipal database yang memungkinkan aplikasi berjalan dengan izinnya sendiri seperti pengguna. Anda dapat menggunakan peran aplikasi untuk memungkinkan akses ke data tertentu hanya untuk pengguna yang terhubung melalui aplikasi tertentu. Tidak seperti peran database, peran aplikasi tidak berisi anggota dan tidak aktif secara default. Peran aplikasi diaktifkan dengan menggunakan sp_setapprole, yang memerlukan kata sandi. Karena peran aplikasi adalah prinsip tingkat database, mereka hanya dapat mengakses database lain melalui izin yang diberikan dalam database tersebut kepada tamu. Oleh karena itu, database apa pun di mana tamu telah dinonaktifkan tidak akan dapat diakses oleh peran aplikasi di database lain.
Dalam SQL Server, peran aplikasi tidak dapat mengakses metadata tingkat server karena tidak terkait dengan prinsipal tingkat server. Untuk menonaktifkan pembatasan ini dan dengan demikian memungkinkan peran aplikasi untuk mengakses metadata tingkat server, atur bendera global 4616. Untuk informasi selengkapnya, lihat Bendera Pelacakan (Transact-SQL) dan DBCC TRACEON (Transact-SQL).
Menyambungkan dengan Peran Aplikasi
Langkah-langkah berikut membentuk proses di mana peran aplikasi beralih konteks keamanan:
Pengguna menjalankan aplikasi klien.
Aplikasi klien terhubung ke instans SQL Server sebagai pengguna.
Aplikasi kemudian menjalankan prosedur tersimpan sp_setapprole dengan kata sandi yang hanya diketahui oleh aplikasi.
Jika nama peran dan kata sandi aplikasi valid, peran aplikasi diaktifkan.
Pada titik ini koneksi kehilangan izin pengguna dan mengasumsikan izin peran aplikasi.
Izin yang diperoleh melalui peran aplikasi tetap berlaku selama durasi koneksi.
Dalam versi SQL Server sebelumnya, satu-satunya cara bagi pengguna untuk memperoleh kembali konteks keamanan aslinya setelah memulai peran aplikasi adalah dengan memutuskan dan menyambungkan kembali ke SQL Server. Dimulai dengan SQL Server 2005 (9.x), sp_setapprole memiliki opsi yang membuat cookie. Cookie berisi informasi konteks sebelum peran aplikasi diaktifkan. Cookie dapat digunakan oleh sp_unsetapprole untuk mengembalikan sesi ke konteks aslinya. Untuk informasi tentang opsi baru ini dan contohnya, lihat sp_setapprole (SQL Transact).
Penting
Opsi enkripsi ODBC tidak didukung oleh SqlClient. Saat Anda mengirimkan informasi rahasia melalui jaringan, gunakan Keamanan Lapisan Transportasi (TLS), yang sebelumnya dikenal sebagai Secure Sockets Layer (SSL), atau IPsec untuk mengenkripsi saluran. Jika Anda harus mempertahankan kredensial dalam aplikasi klien, enkripsi kredensial dengan menggunakan fungsi API kripto. Dalam SQL Server 2005 (9.x) dan versi yang lebih baru, kata sandi parameter disimpan sebagai hash satu arah.
Tugas Terkait
| Tugas | Jenis |
|---|---|
| Buat peran aplikasi. | Membuat Peran Aplikasi dan MEMBUAT PERAN APLIKASI (Transact-SQL) |
| Mengubah peran aplikasi. | ALTER APPLICATION ROLE (Transact-SQL) |
| Menghapus peran aplikasi. | DROP APPLICATION ROLE (Transact-SQL) |
| Menggunakan peran aplikasi. | sp_setapprole (SQL Bertransaksi) |