2011-01-11 23 views

回答

6

要使用觸發器有什麼特別的原因嗎?

您可以簡單地從要限制的用戶中刪除DELETE權限。看看在「權限」部分在這裏:http://msdn.microsoft.com/en-us/library/ms189835.aspx

編輯:既然你說你不想使用觸發器(但我真的認爲你應該重新考慮),您可以創建一個表,如:

CREATE TABLE Restricted_Users 
(
    user_name VARCHAR(40) PRIMARY_KEY -- Use a size appropriate to your requirements 
) 

創建於所有你的表INSTEAD OF DELETE觸發器(那將是件苦差事),檢查在Restricted_UsersUSER_NAME(),如果他們EXIST你可以調用RAISERROR到導致事務回滾,並顯示一條消息,用戶。

請記住,無論何時向數據庫添加/刪除用戶,您都必須在添加到數據庫的所有新表上維護這些觸發器,並在Restricted_Users表中維護用戶列表。

這將是很多更簡單的使用SQL Server中可用的權限系統(這是它的設計目的)使用具有適當權限的角色設置表。然後,在添加新用戶時,您只需將其分配給適當的角色,併爲您處理刪除權限。

7

烏姆帶走用戶的權限?如果你不想讓他們做某件事,那麼'禁止'他們是正確的......這就是爲什麼我們有權限。

下面是關於如何撤銷權限的詳細信息:

http://msdn.microsoft.com/en-us/library/ms186308.aspx

+1

正確的答案,但你鏈接到MySQL文檔,這個問題被標記爲SQL Server :) – Tony 2011-01-11 14:13:33

+0

糟糕..糾正,我實際上編輯後,我的帖子添加引用。 – Jakub 2011-01-11 14:16:45

相關問題