IZIN Utama Grant Database (Transact-SQL)
Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse di Microsoft Fabric
Memberikan izin pada pengguna database, peran database, atau peran aplikasi di SQL Server.
Sintaks
GRANT permission [ ,...n ]
ON
{ [ USER :: database_user ]
| [ ROLE :: database_role ]
| [ APPLICATION ROLE :: application_role ]
}
TO <database_principal> [ ,...n ]
[ WITH GRANT OPTION ]
[ AS <database_principal> ]
<database_principal> ::=
Database_user
| Database_role
| Application_role
| Database_user_mapped_to_Windows_User
| Database_user_mapped_to_Windows_Group
| Database_user_mapped_to_certificate
| Database_user_mapped_to_asymmetric_key
| Database_user_with_no_login
Argumen
izin
Menentukan izin yang dapat diberikan pada prinsipal database. Untuk daftar izin, lihat bagian Keterangan nanti dalam topik ini.
USER ::database_user
Menentukan kelas dan nama pengguna tempat izin diberikan. Kualifikasi cakupan (::) diperlukan.
PERAN ::database_role
Menentukan kelas dan nama peran tempat izin diberikan. Kualifikasi cakupan (::) diperlukan.
PERAN APLIKASI ::application_role
Menentukan kelas dan nama peran aplikasi tempat izin diberikan. Kualifikasi cakupan (::) diperlukan.
DENGAN OPSI GRANT
Menunjukkan bahwa prinsipal juga akan diberikan kemampuan untuk memberikan izin yang ditentukan kepada prinsipal lain.
AS <database_principal>
Menentukan prinsipal dari mana prinsipal yang menjalankan kueri ini memperoleh haknya untuk memberikan izin.
Database_user
Menentukan pengguna database.
Database_role
Menentukan peran database.
Application_role
Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru, SQL Database.
Menentukan peran aplikasi.
Database_user_mapped_to_Windows_User
Menentukan pengguna database yang dipetakan ke pengguna Windows.
Database_user_mapped_to_Windows_Group
Menentukan pengguna database yang dipetakan ke grup Windows.
Database_user_mapped_to_certificate
Menentukan pengguna database yang dipetakan ke sertifikat.
Database_user_mapped_to_asymmetric_key
Menentukan pengguna database yang dipetakan ke kunci asimetris.
Database_user_with_no_login
Menentukan pengguna database tanpa prinsipal tingkat server yang sesuai.
Keterangan
Informasi tentang prinsipal database terlihat dalam tampilan katalog sys.database_principals . Informasi tentang izin tingkat database terlihat dalam tampilan katalog sys.database_permissions .
Izin Pengguna Database
Pengguna database adalah tingkat database yang dapat diamankan yang dimuat oleh database yang merupakan induknya dalam hierarki izin. Izin paling spesifik dan terbatas yang dapat diberikan pada pengguna database tercantum dalam tabel berikut, bersama dengan izin yang lebih umum yang menyertakannya berdasarkan implikasi.
Izin pengguna database | Tersirat oleh izin pengguna database | Tersirat oleh izin database |
---|---|---|
CONTROL | CONTROL | CONTROL |
MENIRU | CONTROL | CONTROL |
ALTER | CONTROL | MENGUBAH PENGGUNA APA PUN |
MELIHAT DEFINISI | CONTROL | MELIHAT DEFINISI |
Izin Peran Database
Peran database adalah tingkat database yang dapat diamankan yang dimuat oleh database yang merupakan induknya dalam hierarki izin. Izin paling spesifik dan terbatas yang dapat diberikan pada peran database tercantum dalam tabel berikut, bersama dengan izin yang lebih umum yang menyertakannya berdasarkan implikasi.
Izin peran database | Tersirat oleh izin peran database | Tersirat oleh izin database |
---|---|---|
CONTROL | CONTROL | CONTROL |
AMBIL KEPEMILIKAN | CONTROL | CONTROL |
ALTER | CONTROL | MENGUBAH PERAN APA PUN |
MELIHAT DEFINISI | CONTROL | MELIHAT DEFINISI |
Izin Peran Aplikasi
Peran aplikasi adalah tingkat database yang dapat diamankan yang dimuat oleh database yang merupakan induknya dalam hierarki izin. Izin paling spesifik dan terbatas yang dapat diberikan pada peran aplikasi tercantum dalam hal berikut, bersama dengan izin yang lebih umum yang menyertakannya berdasarkan implikasi.
Izin peran aplikasi | Tersirat oleh izin peran aplikasi | Tersirat oleh izin database |
---|---|---|
CONTROL | CONTROL | CONTROL |
ALTER | CONTROL | MENGUBAH PERAN APLIKASI APA PUN |
MELIHAT DEFINISI | CONTROL | MELIHAT DEFINISI |
Izin
Pemberi hibah (atau prinsipal yang ditentukan dengan opsi AS) harus memiliki izin itu sendiri dengan GRANT OPTION, atau izin yang lebih tinggi yang menyiratkan izin diberikan.
Jika Anda menggunakan opsi AS, persyaratan tambahan berikut berlaku.
AS granting_principal | Izin tambahan diperlukan |
---|---|
Pengguna database | IZIN IMPERSONATE pada pengguna, keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin. |
Pengguna database dipetakan ke Pengguna Windows | IZIN IMPERSONATE pada pengguna, keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin. |
Pengguna database dipetakan ke Grup Windows | Keanggotaan dalam grup Windows, keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin. |
Pengguna database dipetakan ke sertifikat | Keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin. |
Pengguna database dipetakan ke kunci asimetris | Keanggotaan dalam peran database db_securityadminfixed, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin. |
Pengguna database tidak dipetakan ke perwakilan server mana pun | IZIN IMPERSONATE pada pengguna, keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin. |
Peran database | UBAH izin pada peran, keanggotaan dalam peran database db_securityadminfixed, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin. |
Peran aplikasi | UBAH izin pada peran, keanggotaan dalam peran database tetap db_securityadmin, keanggotaan dalam peran database tetap db_owner, atau keanggotaan dalam peran server tetap sysadmin. |
Prinsipal yang memiliki izin CONTROL pada yang dapat diamankan dapat memberikan izin pada yang dapat diamankan.
Pemberi izin CONTROL pada database, seperti anggota peran database tetap db_owner, dapat memberikan izin apa pun pada setiap yang dapat diamankan dalam database.
Contoh
J. Memberikan izin CONTROL pada pengguna kepada pengguna lain
Contoh berikut memberikan CONTROL
izin pada AdventureWorks2022
pengguna Wanida
kepada pengguna RolandX
.
GRANT CONTROL ON USER::Wanida TO RolandX;
GO
B. Memberikan izin VIEW DEFINITION pada peran kepada pengguna dengan GRANT OPTION
Contoh berikut memberikan VIEW DEFINITION
izin pada AdventureWorks2022
peran SammamishParking
bersama-sama dengan GRANT OPTION
pengguna JinghaoLiu
database .
GRANT VIEW DEFINITION ON ROLE::SammamishParking
TO JinghaoLiu WITH GRANT OPTION;
GO
C. Memberikan izin IMPERSONATE pada pengguna ke peran aplikasi
Contoh berikut memberikan IMPERSONATE
izin pada pengguna HamithaL
ke AdventureWorks2022
peran AccountsPayable17
aplikasi .
Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru, SQL Database.
GRANT IMPERSONATE ON USER::HamithaL TO AccountsPayable17;
GO
Lihat Juga
DENY Database Principal Permissions (Transact-SQL)
MENCABUT Izin Utama Database (Transact-SQL)
sys.database_principals (T-SQL)
sys.database_permissions (T-SQL)
CREATE USER (Transact-SQL)
MEMBUAT PERAN APLIKASI (Transact-SQL)
BUAT PERAN (Transact-SQL)
GRANT (T-SQL)
Izin (Mesin Database)
Prinsipal (Mesin Database)