MENCABUT (SQL Bertransaksi)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics yesAnalytics Platform System (PDW)

Menghapus izin yang sebelumnya diberikan atau ditolak.

Topic link iconKonvensi Sintaksis T-SQL

Sintaks

-- Syntax for SQL Server and Azure SQL Database  
  
-- Simplified syntax for REVOKE  
REVOKE [ GRANT OPTION FOR ]  
      {   
        [ ALL [ PRIVILEGES ] ]  
        |  
                permission [ ( column [ ,...n ] ) ] [ ,...n ]  
      }  
      [ ON [ class :: ] securable ]   
      { TO | FROM } principal [ ,...n ]   
      [ CASCADE] [ AS principal ]  
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse  
  
REVOKE   
    <permission> [ ,...n ]  
    [ ON [ <class_type> :: ] securable ]   
    [ FROM | TO ] principal [ ,...n ]  
    [ CASCADE ]  
[;]  
  
<permission> ::=  
{ see the tables below }  
  
<class_type> ::=  
{  
      LOGIN  
    | DATABASE  
    | OBJECT  
    | ROLE  
    | SCHEMA  
    | USER  
}  

Catatan

Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

OPSI GRANT UNTUK
Menunjukkan bahwa kemampuan untuk memberikan izin yang ditentukan akan dicabut. Ini diperlukan saat Anda menggunakan argumen CASCADE.

Penting

Jika perwakilan memiliki izin yang ditentukan tanpa opsi GRANT, izin itu sendiri akan dicabut.

SEMUA
Berlaku untuk: SQL Server 2008 dan yang lebih baru

Opsi ini tidak mencabut semua izin yang mungkin. Mencabut SEMUA setara dengan mencabut izin berikut.

  • Jika yang dapat diamankan adalah database, ALL berarti BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, dan CREATE VIEW.

  • Jika yang dapat diamankan adalah fungsi skalar, ALL berarti EXECUTE dan REFERENCES.

  • Jika yang dapat diamankan adalah fungsi bernilai tabel, ALL berarti DELETE, INSERT, REFERENCES, SELECT, dan UPDATE.

  • Jika yang dapat diamankan adalah prosedur tersimpan, ALL berarti EXECUTE.

  • Jika yang dapat diamankan adalah tabel, SEMUA berarti HAPUS, SISIPKAN, REFERENSI, PILIH, dan PERBARUI.

  • Jika yang dapat diamankan adalah tampilan, SEMUA berarti HAPUS, SISIPKAN, REFERENSI, PILIH, dan PERBARUI.

Catatan

Sintaks REVOKE ALL tidak digunakan lagi. Fitur ini akan dihapus dalam versi Microsoft SQL Server yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru, dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini. Cabut izin tertentu sebagai gantinya.

HAK ISTIMEWA
Disertakan untuk kepatuhan ISO. Tidak mengubah perilaku ALL.

Izin
Adalah nama izin. Pemetaan izin yang valid ke yang dapat diamankan dijelaskan dalam topik yang tercantum dalam Sintaksis Khusus Yang Dapat Diamankan nanti dalam topik ini.

kolom
Menentukan nama kolom dalam tabel tempat izin dicabut. Tanda kurung diperlukan.

class
Menentukan kelas yang dapat diamankan tempat izin dicabut. Kualifikasi cakupan :: diperlukan.

Securable
Menentukan yang dapat diamankan di mana izin sedang dicabut.

UNTUK | DARI utama
Adalah nama prinsipal. Prinsipal dari mana izin pada yang dapat diamankan dapat dicabut bervariasi, tergantung pada yang dapat diamankan. Untuk informasi selengkapnya tentang kombinasi yang valid, lihat topik yang tercantum dalam Sintaksis Khusus yang Dapat Diamankan nanti dalam topik ini.

CASCADE
Menunjukkan bahwa izin yang sedang dicabut juga dicabut dari prinsipal lain yang telah diberikan oleh prinsipal ini. Saat Anda menggunakan argumen CASCADE, Anda juga harus menyertakan argumen GRANT OPTION FOR.

Perhatian

Pencabutan izin berkasta yang diberikan WITH GRANT OPTION akan mencabut izin GRANT dan DENY tersebut.

Prinsipal AS
Gunakan klausul utama AS untuk menunjukkan bahwa Anda mencabut izin yang diberikan oleh prinsipal selain Anda. Misalnya, anggaplah bahwa pengguna Mary adalah principal_id 12 dan pengguna Raul principal_id 15. Mary dan Raul memberikan pengguna bernama Steven izin yang sama. Tabel sys.database_permissions akan menunjukkan izin dua kali tetapi masing-masing akan memiliki nilai grantor_principal_id yang berbeda. Mary bisa mencabut izin menggunakan klausul AS RAUL untuk menghapus pemberian Izin Raul.

Penggunaan AS dalam pernyataan ini tidak menyiratkan kemampuan untuk meniru pengguna lain.

Keterangan

Sintaks lengkap pernyataan REVOKE rumit. Diagram sintaks di atas disederhanakan untuk menarik perhatian pada strukturnya. Sintaks lengkap untuk mencabut izin pada pengamanan tertentu dijelaskan dalam topik yang tercantum dalam Sintaksis Khusus Yang Dapat Diamankan nanti dalam topik ini.

Pernyataan REVOKE dapat digunakan untuk menghapus izin yang diberikan, dan pernyataan DENY dapat digunakan untuk mencegah prinsipal mendapatkan izin tertentu melalui GRANT.

Memberikan izin akan menghapus TOLAK atau PENCABUTAN izin tersebut pada yang ditentukan yang dapat diamankan. Jika izin yang sama ditolak pada cakupan yang lebih tinggi yang berisi yang dapat diamankan, TOLAK diutamakan. Namun, mencabut izin yang diberikan pada cakupan yang lebih tinggi tidak diutamakan.

Perhatian

TOLAK tingkat tabel tidak lebih diutamakan daripada GRANT tingkat kolom. Inkonsistensi dalam hierarki izin ini telah dipertahankan untuk kompatibilitas mundur. Ini akan dihapus dalam rilis mendatang.

Prosedur tersimpan sistem sp_helprotect melaporkan izin pada tingkat database yang dapat diamankan

Pernyataan REVOKE akan gagal jika CASCADE tidak ditentukan ketika Anda mencabut izin dari prinsipal yang diberikan izin tersebut dengan GRANT OPTION yang ditentukan.

Izin

Prinsipal dengan izin CONTROL pada yang dapat diamankan dapat mencabut izin pada yang dapat diamankan. Pemilik objek dapat mencabut izin pada objek yang mereka miliki.

Pemberi izin CONTROL SERVER, seperti anggota peran server tetap sysadmin, dapat mencabut izin apa pun pada setiap yang dapat diamankan di server. Pemberi izin CONTROL pada database, seperti anggota peran database tetap db_owner, dapat mencabut izin apa pun pada setiap yang dapat diamankan dalam database. Pemberi izin CONTROL pada skema dapat mencabut izin apa pun pada objek apa pun dalam skema.

Sintaksis khusus yang dapat diamankan

Tabel berikut mencantumkan securables dan topik yang menjelaskan sintaksis khusus yang dapat diamankan.

Yang dapat diamankan Topik
Peran Aplikasi MENCABUT Izin Utama Database (SQL Transact)
Rakitan MENCABUT Izin Assembly (Transact-SQL)
Kunci Asimetris MENCABUT Izin Kunci Asimetris (SQL Transact)
Grup Ketersediaan MENCABUT Izin Grup Ketersediaan (Transact-SQL)
Sertifikat MENCABUT Izin Sertifikat (SQL Bertransaksi)
Kontrak MENCABUT Izin Service Broker (Transact-SQL)
Database MENCABUT Izin Database (SQL Transaksi)
Titik akhir MENCABUT Izin Titik Akhir (SQL Transact)
Kredensial Cakupan Database MENCABUT Kredensial Cakupan Database (SQL Transact)
Katalog teks lengkap MENCABUT Izin Full-Text (SQL Bertransaksi)
Full-Text Stoplist MENCABUT Izin Full-Text (SQL Bertransaksi)
Fungsi MENCABUT Izin Objek (SQL Bertransaksi)
Masuk MENCABUT Izin Utama Server (Transact-SQL)
Jenis Pesan MENCABUT Izin Service Broker (Transact-SQL)
Objek MENCABUT Izin Objek (SQL Bertransaksi)
Antrean MENCABUT Izin Objek (SQL Bertransaksi)
Pengikatan Layanan Jarak Jauh MENCABUT Izin Service Broker (Transact-SQL)
Peran MENCABUT Izin Utama Database (SQL Transact)
Rute MENCABUT Izin Service Broker (Transact-SQL)
Skema MENCABUT Izin Skema (Transact-SQL)
Daftar Properti Pencarian MENCABUT Izin Daftar Properti Pencarian (Transact-SQL)
Server MENCABUT Izin Server (SQL Bertransaksi)
Layanan MENCABUT Izin Service Broker (Transact-SQL)
Prosedur Tersimpan MENCABUT Izin Objek (SQL Bertransaksi)
Kunci Konten MENCABUT Izin Kunci Konten (SQL Transact)
Sinonim MENCABUT Izin Objek (SQL Bertransaksi)
Objek sistem MENCABUT Izin Objek Sistem (SQL Bertransaksi)
Tabel MENCABUT Izin Objek (SQL Bertransaksi)
Jenis MENCABUT Izin Jenis (SQL Bertransaksi)
Pengguna MENCABUT Izin Utama Database (SQL Transact)
Tampilan MENCABUT Izin Objek (SQL Bertransaksi)
Koleksi Skema XML MENCABUT Izin Pengumpulan Skema XML (transact-SQL)

Contoh

A. Memberikan dan mencabut

BERLAKU UNTUK: SQL Server, SQL Database

Contoh berikut membuat skema, pengguna database mandiri, dan peran baru pada database pengguna. Ini menambahkan pengguna ke peran, memberikan izin SELECT pada skema ke peran, lalu menghapus (REVOKE) izin tersebut ke peran.

CREATE SCHEMA Sales;  
GO
CREATE USER Joe without login;
GO
CREATE ROLE Vendors;
GO
ALTER ROLE Vendors ADD MEMBER Joe; 
GO
GRANT SELECT ON SCHEMA :: Sales TO Vendors;
GO
REVOKE SELECT ON SCHEMA :: Sales TO Vendors;
GO
 

Lihat juga

Hierarki Izin (Mesin Database)
TOLAK (SQL Bertransaksi)
GRANT (transact-SQL)
sp_addlogin (SQL Bertransaksi)
sp_adduser (SQL Bertransaksi)
sp_changedbowner (SQL Bertransaksi)
sp_dropuser (SQL Bertransaksi)
sp_helprotect (SQL Bertransaksi)
sp_helpuser (SQL Bertransaksi)