Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bisakah kita menolak penghapusan dari tabel tertentu?

Tentu saja!

DENY DELETE ON (YourTableNameHere) TO YourUserNameHere

Lihat dokumentasi MSDN Books Online yang luar biasa dan lengkap untuk lebih jelasnya!

Jika Anda ingin menolak DELETE izin pada semua tabel dalam database, Anda dapat menggunakan:

DENY DELETE TO YourUserNameHere

Atau jika Anda telah menyusun database Anda sedemikian rupa sehingga tabel dikelompokkan dalam skema , maka Anda juga dapat menolak pengguna dari skema tertentu.

Jika Anda belum mengelompokkan 90 tabel ke dalam skema terpisah (atau dua, tiga skema), maka tidak ada cara yang mudah dan ajaib untuk menerapkan izin ke 90 tabel sekaligus. Ini adalah semua tabel , skema tertentu, atau objek database tertentu (seperti tabel) per DENY pernyataan.

Pembaruan: Anda selalu dapat menggunakan tampilan katalog sistem untuk menghasilkan DENY pernyataan untuk Anda, lalu gunakan pernyataan yang Anda perlukan:

SELECT 
    'DENY DELETE ON ' + t.NAME + ' TO (youruser)'
FROM sys.tables t

Ini akan menghasilkan sebagai outputnya (misalnya di SQL Server Management Studio) daftar pernyataan untuk menolak DELETE izin dari pengguna Anda. Salin baris tersebut ke editor teks dan hapus baris yang tidak Anda perlukan - dan di sana Anda memiliki daftar panjang DENY pernyataan!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Masukkan data pada Tabel SQL... tidak dapat menemukan datanya

  2. Saya ingin menggunakan pernyataan CASE untuk memperbarui beberapa catatan di sql server 2005

  3. Cara membangun kembali tampilan di SQL Server 2008

  4. Apa yang setara dengan LOCK_ESCALATION =TABLE di SQL Server 2005?

  5. SQL Server varbinary bigint dengan nilai BitConverter.ToInt64 berbeda