Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Chúng tôi có thể từ chối xóa khỏi các bảng cụ thể không?

Hoàn toàn có thể!

DENY DELETE ON (YourTableNameHere) TO YourUserNameHere

Xem tài liệu MSDN Books Online tuyệt vời và phong phú để biết thêm chi tiết!

Nếu bạn muốn từ chối DELETE quyền trên tất cả bảng trong cơ sở dữ liệu, bạn có thể sử dụng:

DENY DELETE TO YourUserNameHere

Hoặc nếu bạn đã cấu trúc cơ sở dữ liệu của mình theo cách mà các bảng được nhóm lại trong schematas , thì bạn cũng có thể từ chối một người dùng khỏi một lược đồ cụ thể.

Nếu bạn chưa nhóm 90 bảng của mình thành một lược đồ riêng biệt (hoặc hai, ba bảng schematas) thì không có cách nào dễ dàng, kỳ diệu để áp dụng một quyền cho 90 bảng cùng một lúc. Đó là tất cả các bảng , một lược đồ cụ thể hoặc một đối tượng cơ sở dữ liệu cụ thể (như một bảng) cho mỗi DENY tuyên bố.

Cập nhật: bạn luôn có thể sử dụng các chế độ xem danh mục hệ thống để tạo DENY đó cho bạn, và sau đó sử dụng những gì bạn cần:

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

Điều này sẽ tạo ra dưới dạng đầu ra của nó (ví dụ:trong SQL Server Management Studio) một danh sách các câu lệnh để từ chối DELETE sự cho phép từ người dùng của bạn. Sao chép các hàng đó vào trình soạn thảo văn bản và xóa những hàng bạn không cần - và ở đó bạn có danh sách dài DENY tuyên bố!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cách mã hóa cột mật khẩu

  2. Khóa chính tổng hợp JPA

  3. Tìm bản ghi sql chứa các chuỗi tương tự

  4. Truy xuất dữ liệu từ quy trình được lưu trữ có nhiều bộ kết quả

  5. SQL sử dụng các giá trị được phân tách bằng dấu phẩy với mệnh đề IN