IZIN objek GRANT (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 tabel, tampilan, fungsi bernilai tabel, prosedur tersimpan, prosedur tersimpan yang diperluas, fungsi skalar, fungsi agregat, antrean layanan, atau sinonim.
Sintaks
GRANT <permission> [ ,...n ] ON
[ OBJECT :: ][ schema_name ]. object_name [ ( column_name [ ,...n ] ) ]
TO <database_principal> [ ,...n ]
[ WITH GRANT OPTION ]
[ AS <database_principal> ]
<permission> ::=
ALL [ PRIVILEGES ] | permission [ ( column_name [ ,...n ] ) ]
<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 objek yang berisi skema. Untuk daftar izin, lihat Komentar.
SEMUA
Memberikan SEMUA tidak memberikan semua izin yang mungkin. Memberikan SEMUA setara dengan memberikan semua izin ANSI-92 yang berlaku untuk objek yang ditentukan. Arti SEMUA bervariasi sebagai berikut:
- Izin fungsi skalar: EXECUTE, REFERENCES.
- Izin fungsi bernilai tabel: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
- Izin prosedur tersimpan: EXECUTE.
- Izin tabel: HAPUS, SISIPKAN, REFERENSI, PILIH, PERBARUI.
- Lihat izin: HAPUS, SISIPKAN, REFERENSI, PILIH, PERBARUI.
Perhatian
Izin SEMUA tidak digunakan lagi dan dipertahankan hanya untuk kompatibilitas.
HAK ISTIMEWA
Disertakan untuk kepatuhan ANSI-92. Tidak mengubah perilaku ALL.
column_name
Menentukan nama kolom dalam tabel, tampilan, atau fungsi bernilai tabel tempat izin diberikan. Tanda kurung ( ) diperlukan. Hanya izin SELECT, REFERENCES, UPDATE, dan UNMASK yang dapat diberikan pada kolom. column_name dapat ditentukan dalam klausa izin atau setelah nama yang dapat diamankan.
Perhatian
TOLAK tingkat tabel tidak lebih diutamakan daripada GRANT tingkat kolom. Ketidakkonsistensian dalam hierarki izin ini telah dipertahankan untuk kompatibilitas mundur.
ON [ OBJECT :: ] [ schema_name ] . object_name
Menentukan objek tempat izin diberikan. Frasa OBJECT bersifat opsional jika schema_name ditentukan. Jika frasa OBJECT digunakan, kualifikasi cakupan (::) diperlukan. Jika schema_name tidak ditentukan, skema default akan digunakan. Jika schema_name ditentukan, kualifikasi cakupan skema (.) diperlukan.
UNTUK <database_principal>
Menentukan prinsipal tempat izin diberikan.
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
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
Penting
Kombinasi ALTER
izin dan REFERENCE
dalam beberapa kasus dapat memungkinkan penerima untuk melihat data atau menjalankan fungsi yang tidak sah. Misalnya: Pengguna dengan ALTER
izin pada tabel dan REFERENCE
izin pada fungsi dapat membuat kolom komputasi melalui fungsi dan menjalankannya. Dalam hal ini pengguna juga akan memerlukan SELECT
izin pada kolom komputasi.
Informasi tentang objek terlihat dalam berbagai tampilan katalog. Untuk informasi selengkapnya, lihat Tampilan Katalog Objek (Transact-SQL).
Objek adalah tingkat skema yang dapat diamankan yang dimuat oleh skema yang merupakan induknya dalam hierarki izin. Izin paling spesifik dan terbatas yang dapat diberikan pada objek tercantum dalam tabel berikut, bersama dengan izin yang lebih umum yang menyertakannya berdasarkan implikasi.
Izin objek | Tersirat oleh izin objek | Tersirat oleh izin skema |
---|---|---|
ALTER |
CONTROL |
ALTER |
CONTROL |
CONTROL |
CONTROL |
DELETE |
CONTROL |
DELETE |
EXECUTE |
CONTROL |
EXECUTE |
INSERT |
CONTROL |
INSERT |
RECEIVE |
CONTROL |
CONTROL |
REFERENCES |
CONTROL |
REFERENCES |
SELECT |
RECEIVE |
SELECT |
TAKE OWNERSHIP |
CONTROL |
CONTROL |
UPDATE |
CONTROL |
UPDATE |
VIEW CHANGE TRACKING |
CONTROL |
VIEW CHANGE TRACKING |
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
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 yang diberikan.
Jika Anda menggunakan opsi AS, persyaratan tambahan berikut berlaku.
AS | Izin tambahan diperlukan |
---|---|
Pengguna database | IMPERSONATE izin pada pengguna, keanggotaan dalam db_securityadmin peran database tetap, keanggotaan dalam db_owner peran database tetap, atau keanggotaan dalam sysadmin peran server tetap. |
Pengguna database dipetakan ke login Windows | IMPERSONATE izin pada pengguna, keanggotaan dalam db_securityadmin peran database tetap, keanggotaan dalam db_owner peran database tetap, atau keanggotaan dalam sysadmin peran server tetap. |
Pengguna database dipetakan ke Grup Windows | Keanggotaan dalam grup Windows, keanggotaan dalam db_securityadmin peran database tetap, keanggotaan dalam db_owner peran database tetap, atau keanggotaan dalam sysadmin peran server tetap. |
Pengguna database dipetakan ke sertifikat | Keanggotaan dalam db_securityadmin peran database tetap, keanggotaan dalam db_owner peran database tetap, atau keanggotaan dalam sysadmin peran server tetap. |
Pengguna database dipetakan ke kunci asimetris | Keanggotaan dalam db_securityadmin peran database tetap, keanggotaan dalam db_owner peran database tetap, atau keanggotaan dalam sysadmin peran server tetap. |
Pengguna database tidak dipetakan ke perwakilan server mana pun | IMPERSONATE izin pada pengguna, keanggotaan dalam db_securityadmin peran database tetap, keanggotaan dalam db_owner peran database tetap, atau keanggotaan dalam sysadmin peran server tetap. |
Peran database | ALTER izin pada peran, keanggotaan dalam db_securityadmin peran database tetap, keanggotaan dalam db_owner peran database tetap, atau keanggotaan dalam sysadmin peran server tetap. |
Peran aplikasi | ALTER izin pada peran, keanggotaan dalam db_securityadmin peran database tetap, keanggotaan dalam db_owner peran database tetap, atau keanggotaan dalam sysadmin peran server tetap. |
Contoh
J. Memberikan izin SELECT pada tabel
Contoh berikut memberikan SELECT
izin kepada pengguna RosaQdM
pada tabel Person.Address
dalam AdventureWorks2022
database.
Contoh seperti yang ditulis ini tidak berfungsi di Microsoft Fabric karena menggunakan pengguna untuk login terautentikasi SQL, tetapi contoh yang sama ini akan berfungsi untuk pengguna Microsoft Entra ID Fabric, misalnya, RosaQdM@contoso.com
.
GRANT SELECT ON OBJECT::Person.Address TO RosaQdM;
GO
B. Memberikan izin EXECUTE pada prosedur tersimpan
Contoh berikut memberikan EXECUTE
izin pada prosedur HumanResources.uspUpdateEmployeeHireInfo
tersimpan ke peran aplikasi yang disebut Recruiting11
.
USE AdventureWorks2022;
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
TO Recruiting11;
GO
C. Memberikan izin REFERENCES pada tampilan dengan GRANT OPTION
Contoh berikut memberikan REFERENCES
izin pada kolom BusinessEntityID
dalam tampilan HumanResources.vEmployee
kepada pengguna Wanida
dengan GRANT OPTION
.
Contoh seperti yang ditulis ini tidak berfungsi di Microsoft Fabric karena menggunakan pengguna untuk login terautentikasi SQL, tetapi contoh yang sama ini akan berfungsi untuk pengguna Microsoft Entra ID Fabric, misalnya, Wanida@contoso.com
.
GRANT REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee
TO Wanida WITH GRANT OPTION;
GO
D. Memberikan izin SELECT pada tabel tanpa menggunakan frasa OBJECT
Contoh berikut memberikan SELECT
izin kepada pengguna RosaQdM
pada tabel Person.Address
dalam AdventureWorks2022
database.
Contoh seperti yang ditulis ini tidak berfungsi di Microsoft Fabric karena menggunakan pengguna untuk login terautentikasi SQL, tetapi contoh yang sama ini akan berfungsi untuk pengguna Microsoft Entra ID Fabric, misalnya, RosaQdM@contoso.com
.
GRANT SELECT ON Person.Address TO RosaQdM;
GO
E. Memberikan izin SELECT pada tabel ke akun domain
Contoh berikut memberikan SELECT
izin kepada pengguna AdventureWorks2022\RosaQdM
pada tabel Person.Address
dalam AdventureWorks2022
database.
Contoh seperti yang ditulis ini tidak berfungsi di Microsoft Fabric karena menggunakan akun domain, tetapi contoh yang sama ini akan berfungsi untuk pengguna Microsoft Entra ID Fabric, misalnya, RosaQdM@contoso.com
.
GRANT SELECT ON Person.Address TO [AdventureWorks2022\RosaQdM];
GO
F. Memberikan izin EXECUTE pada prosedur ke peran
Contoh berikut membuat peran lalu memberikan EXECUTE
izin ke peran tentang prosedur uspGetBillOfMaterials
dalam AdventureWorks2022
database.
CREATE ROLE newrole ;
GRANT EXECUTE ON dbo.uspGetBillOfMaterials TO newrole ;
GO
G. Memberikan izin UNMASK pada kolom
Contoh berikut memberikan UNMASK
izin, bagian dari Masking data dinamis, untuk kolom email
dalam tabel Data.Membership
kepada pengguna OutreachCoordinator
.
Masking data dinamis saat ini tidak didukung di Microsoft Fabric.
GRANT UNMASK ON OBJECT::Data.Membership (email) to OutreachCoordinator;
GO
Konten terkait
- DENY Object Permissions (Transact-SQL)
- MENCABUT Izin Objek (Transact-SQL)
- Tampilan Katalog Objek (Transact-SQL)
- Izin (Mesin Database)
- Prinsipal (Mesin Database)
- Securable
- sys.fn_builtin_permissions (T-SQL)
- HAS_PERMS_BY_NAME (T-SQL)
- sys.fn_my_permissions (T-SQL)
- Masking Data Dinamis
- Keamanan Tingkat Baris