數據庫安全

數據庫安全

自主安全性機制:存取控制(access control通過權限在用戶之間傳遞,使用戶自主管理數據庫安全性。

強制安全機制:對數據和用戶強制分類,使得不同類別用戶能夠訪問不同類別的數據。

非法用戶----------權限機制

非法數據----------完整性約束

各種故障----------故障恢復能力

多用戶併發訪問----------併發控制機制

DBA

DBMS提供一個DBA賬戶,該賬戶爲超級用戶(系統用戶),DBA利用該賬戶的特權可以進行用戶賬戶的創建,以及權限授予、撤銷,安全級別控制調整(linux 中的 root)

一、三層安全模型:

1 登錄賬號:
添加windows登錄賬戶
exec   sp_grantlogin'域名\用戶名'
添加SQL登錄賬戶
exec  sp_addlogin  'your  name' ,'your password'
2 數據庫用戶:(linux 中的分組group)
use  databasename   ----使用哪個數據庫
exec   sp_grantdbaccess '登錄賬號' ,'數據庫用戶'

3 授權後訪問指定數據庫指定內容:
------------------------授權
GRANT [權限 insert  update delete   select]
on   對象類型(table  view  database)  對象名(student)  
to   用戶
with   grant   option           -----具有傳播該權限的功能
---例子1:授予用戶yue 查看student表的權力,且可將此權力傳播
grant   select                  --all privliege  授予全部權力
on  table  student
to  yue
with  grant option
---例子2:授予數據庫用戶userDB1 查詢sche架構下對象的權限
grant  select  
on   schema::sche               --注意架構名的寫法
to  userDB1
---例子3:將存儲過程Proc1的執行權限授予用戶U2
grant  execute
on  procedure proc1
to  u2
-----------------------撤銷權力
revoke   [權限 insert  update delete   select]
on      對象類型(table  view  database)  對象名(student)  
from   用戶
---例子  撤銷所有用戶對student表的查看權力
revoke   select 
on  table  student
from   public

二、角色:將用戶集中到一個單元,然後對該單元授權

固定服務器角色:

sysadmin 可以在SQL中執行任何活動

processadmin 管理SQL server的進程

dbcreator 創建、更改和除去數據庫

bulkadmin 可以執行BULK INSERR 語句

數據庫固定角色:

用戶自定義角色:

例子:某校新增加10個班主任,授予他們添加、修改和刪除student表的權限。

1創建角色並對角色授權
---創建班主任角色
EXEC  sp_addrole 'moniter_role'
---對角色授權
grant select on  student  to moniter_role
2 創建各班主任登錄名
方法一:
create   login   login1   with  password='123546'
方法二:
EXEC  sp_addlogin   'login2','123456'
3 創建各登錄對應的數據庫用戶
方法一:
create   user   login1_DB  for  login  login1
方法二:
EXEC     sp_grantdbaccess  'login2' ,'login2_db'

4 總結:系統存儲過程總結 sp_
sp_addlogin 登錄名 ,登錄密碼              ----創建登錄名
sp_adddbaccess  登錄名,數據庫用戶名       -----創建數據庫用戶
sp_addrole  角色名稱					-----創建角色

安全性控制的一般方法:

視圖機制、審計、數據加密

三、架構(用戶–架構–數據庫對象模式)

架構是形成單個命名空間的數據庫實體的集合,可以將架構理解爲存放數據庫對象的一個容器

就是一個數據庫裏的對象名稱太多了,就把他們放到不同的貨架上(架構)

一個表的完整限定名稱爲服務器名.數據庫名.架構名.對象名

創建登錄名:create   login  login1  with  password="123456" default_database="數據庫名稱"
創建數據庫用戶:create   user  login1_db   for  login  login1  
創建數據庫用戶時未指定架構名,系統默認架構爲dbo

setuser   ---切換到管理員權限  有點像  linux 的 suroot
alter user login1_db  with  default_schema = sche  ---設置login1_db的默認架構爲sche
setuser 'login1_db'   -----切換爲普通用戶

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章