我只有一個大型的查找數據表。我想鎖表,所以不允許插入(密碼保護?)。用戶將在兩個字段中查找數據以在第三個字段中查找結果。通常,用戶將擁有對數據庫中所有其他表的讀寫權限。保護表格免於插入,但仍然可供讀取
0
A
回答
0
一個簡單的替代方案,將阻止更新和插入一個特定的表,但仍然允許刪除:
ALTER TABLE mytable WITH NOCHECK ADD CONSTRAINT chk_read_only CHECK(1 = 0)
注意:這樣就避免了INSERT和UPDATE,但允許刪除操作。
如果你真的需要一個表來進行真正的只讀您也可以:
一)把它放在自己的數據庫或 二)把它放在只有讀文件組和標記,這裏是如何:
USE [master]
GO
ALTER DATABASE [name] ADD FILEGROUP [READONLYTABLES]
GO
ALTER DATABASE [name] ADD FILE (NAME = N'mydb_readonly_tables', FILENAME = N'G:\SQL2005DATA\mydb_readonly_tables.ndf' , SIZE = 3072KB , FILEGROWTH = 1024KB) TO FILEGROUP [READONLYTABLES]
GO
USE Name
GO
DROP TABLE mytable
CREATE TABLE mytable (
somedata char(8000) not null
) ON READONLYTABLES
GO
0
我發現這個網頁,其中解釋了幾個解決方案:
以下可能是你之後(將表添加到FILEGROUP,然後將該組設置爲READONLY):
USE [master]
GO
ALTER DATABASE [MyDB] ADD FILEGROUP [READ_ONLY_TBLS]
GO
ALTER DATABASE [MyDB]
ADD FILE (NAME = N'mydb_readonly_tables',
FILENAME = N'C:\JSPACE\myDBReadOnly.ndf' , SIZE = 2048KB ,
FILEGROWTH = 1024KB) TO FILEGROUP [READ_ONLY_TBLS]
GO
DROP table tblEvents
create table tblEvents
(
id int,
logEvent varchar(1000)
)
ON [READ_ONLY_TBLS]
ALTER DATABASE [MyDB] MODIFY FILEGROUP [READ_ONLY_TBLS] READONLY
相關問題
- 1. 密碼保護的VBA,但代碼仍然可見
- 2. 在asp:GridView中插入隱藏列,但仍然可用客戶端
- 3. Android prouarded apk仍然可讀
- 4. Android的保護MP3文件的形式被共享,但仍然可玩
- 5. ifstream仍然讀取後eof
- 6. 保護PHP電子郵件表格免受注入?
- 7. 輸入有要求,但表格仍然提交
- 8. 從HTML中讀取並插入表格
- 9. 提交表格仍然選擇輸入
- 10. 試圖讀取寫入保護內存
- 11. 前微軟SLP代碼保護程序是否仍然可用?
- 12. 是否包含cfqueryparam的cfsqltype,對於sql注入保護仍然有用?
- 13. 爲什麼仍然可以讀取的破壞鏈表
- 14. VBA取消保護表單,運行子表單,然後重新保護表單?
- 15. Google表格保護
- 16. 儘管數據可用於在套接字上讀取,pselect塊仍然可用
- 17. 儘管我讀了,但仍然困惑於wcf
- 18. 讀取內存保護
- 19. MODI是否仍然維護?
- 20. WCF明天仍然維護
- 21. 如何保護mp3文件免於在Android上讀取或複製?
- 22. 使用jQuery使文本只讀,但仍然可點擊
- 23. 如何?:Excel保護數據透視表,但仍具有可擴展功能
- 24. DalliError:沒有,但仍然編寫服務器/讀取片段
- 25. Ruby/MySQL讀取單行但仍然使用.each?
- 26. 數據插入成功,但jQuery仍然返回錯誤
- 27. ArrayList更新插入一行,但Jtable仍然不刷新
- 28. 如何保護PHP免於公衆?
- 29. C++保護進程免於被暫停
- 30. 保護項目免於重命名
您無法對錶進行密碼保護。您可以使用而不是觸發器來防止插入。你也可以爲某些(或者全部)用戶插入DENY。 https://msdn.microsoft.com/en-us/library/ms173724.aspx –
更好的是,不要讓'GRANT'人員擁有你不想讓他們擁有的權限。默認情況下,沒有人可以對數據庫執行任何操作。如果您擔心用戶可能會對特定表格進行更改,那麼只有當您已經超越授予他們許可權限的時候纔會這樣做。所以停下來問問你自己爲什麼給了他們這些權限。 –