『壹』 SQL怎樣取消修改資料庫的許可權
SQL 用戶許可權設置
首先,做好用戶安全:
--簡單的,只允許sql的用戶訪問sql(防止利用administrator組用戶訪問)
1.企業管理器--右鍵SQL實例--屬性--安全性--身份驗證--選擇"sql server和windows"--確定
2.企業管理器--安全性--登陸--右鍵sa--設置密碼--其他用戶也設置密碼
3.刪除用戶:
BUILTIN\Administrators
<機器名>\Administrator --這個用戶不一定有
這樣可以防止用windows身份登陸SQL
4.設置進入企業管理器需要輸入密碼
在企業管理器中
--右鍵你的伺服器實例(就是那個有綠色圖標的)
--編輯SQL Server注冊屬性
--選擇"使用 SQL Server 身份驗證"
--並勾選"總是提示輸入登錄名和密碼"
--確定
--經過上面的設置,SQL Server基本上算是安全了.
其次,改默認埠,隱藏伺服器,減少被攻擊的可能性
SQL Server伺服器
--開始
--程序
--Microsoft SQL Server
--伺服器網路實用工具
--啟用的協議中"TCP/IP"
--屬性
--默認埠,輸入一個自已定義的埠,比如2433
--勾選隱藏伺服器
--管好sql的用戶,防止訪問他不該訪問的資料庫(總控制,明細還可以控制他對於某個資料庫的具體對象具有的許可權)
--切換到新增的用戶要控制的資料庫
use 庫名
go
--新增用戶
exec sp_addlogin 'test' --添加登錄
exec sp_grantdbaccess N'test' --使其成為當前資料庫的合法用戶
exec sp_addrolemember N'db_owner', N'test' --授予對自己資料庫的所有許可權
--這樣創建的用戶就只能訪問自己的資料庫,及資料庫中包含了guest用戶的公共表
go
--刪除測試用戶
exec sp_revokedbaccess N'test' --移除對資料庫的訪問許可權
exec sp_droplogin N'test' --刪除登錄
最後一步,為具體的用戶設置具體的訪問許可權,這個可以參考下面的最簡示例:
--添加
--添加用戶:
exec sp_addlogin '用戶名','密碼','默認資料庫名'
--添加到資料庫
exec sp_grantdbaccess '用戶名','資料庫名'
--分本許可權
grant insert,select,update,delete on table1 to public
『貳』 如何防止繞過程序直接修改資料庫欄位值
對資料庫中的每一行敏感數據設有獨有的數字簽名,每一次修改資料庫我們都在底層進行簽名校驗進行比較。
未經授權的資料庫修改無法通過校驗,程序進行終止操作並提示異常。
如:
keyStr1=amount+account+key
可對keyStr1進行hash加密(sign1),存入加密記錄,下次修改之前,再取
keyStr2=amount+account+key,進行hash加密(sign2)
判斷是否sign1=sign2,不一致則異常,一致才允許修改