数据库三层安全模型

数据库三层安全模型

自主安全性机制:存取控制(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'   -----切换为普通用户

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值