第 11讲
SQL Server安全管理问题赵老师当了 00电子商务班的班主任,他要能查到全校的课程信息以及本班学生的选课信息,
如何让他有权查到这些信息。
安全管理一个用户要对某一个数据库进行操作,必须同时满足两个条件:
1,能连接到 SQL Server服务器(连接权)
2,有执行该操作的权限(访问权)
安全管理房子
(SQL
Server)
大门验证授权
SQ
L S
erv
er
验证模式
SQL Server两种验证模式
1,仅 Windows 验证
2,SQL Server和 Windows的混合验证
设置安全认证模式登录管理
必须有合法的登录账号才能建立与 SQL Server的连接
【 例 】 为新老师创建登录账号
EXEC sp_addlogin ‘logzhao’,’01’
验证登录帐号能否对数据库进行访问。
数据库用户管理有了登录帐号后,还要对应数据库用户才能连接数据库
【 例 】 在数据库中创建用户
dbuserzhao,对应的登录帐号是
logtzhao。
exec sp_grantdbaccess
‘logzhao','dbuserzhao‘
验证与数据库的连接和访问授予权限
权限分为:
1,语句权限,create table,view,
trigger etc…
2,对象权限,select,insert,exec,
update,delete,exec
【 例 】 授予用户权限
grant select on course to
dbuserzhao
【 例 】 验证登录账号 logzhao能否访问 course表解决问题解决赵老师 能查询本班学生的选课信息
Create view csel as
Select stucou.stuno,couno,willorder
from stucou,student,class
Where stucou.stuno=student.stuno and
student.classno=class.classno and
classname=’00电子商务 ’
步骤 1.创建 00电子商务班的选课信息视图解决问题步骤 2.把访问该视图的权限授予赵老师步骤 3.验证赵老师能否访问视图解决问题
赵老师能了解本班某课程的选课情况步骤 1.创建能查询本班指定课程选课信息的存储过程
create proc c_cou @kc char(10)
As
Select stuno,couname,willorder from csel,course
Where csel.couno=course.couno and
Couname=@kc
解决问题步骤 2.把执行该存储过程的权限授予赵老师
grant exec on c_cou to dbuserzhao
步骤 3.验证赵老师能否执行存储过程撤消权限
【 例 】 撤消赵老师执行上面存储过程的权限问题
假如学校新增 10个班主任,他们都要在 student表中添加、修改和删除学生,要个个设置权限,方便吗?
角色
角色角色是一组权限的 命名集合 。
SQL Server中角色分为:服务器角色和数据库角色。
数据库角色标准角色:有角色成员 。
应用程序角色:无角色成员,需要激活才能使用。
解决问题步骤 1:创建班主任角色
use xk
EXEC sp_addrole ‘m_role’
步骤 2:对角色授权步骤 3:创建各班主任登录
sp_addlogin ‘logteac1’,’01’
sp_addlogin ‘logteac2’,’02’
步骤 4:创建各登录对应的用户
sp_grantdbaccess ‘logteac1',
'dbuser1'
解决问题步骤 5:使用户成为角色成员
sp_addrolemember ‘m_role’,’dbuser1’
sp_addrolemember ‘m_role’,’dbuser2’
步骤 6:
验证插入权限应用程序角色创建应用程序角色
sp_addapprole 角色名,密码激活应用程序角色
sp_setapprole 角色名,密码删除
删除登录、用户、角色
sp_droplogin
sp_dropuser
sp_droprole
企业管理器用法本章小结
登录管理 —— 使得可以连到数据库服务器
用户管理 —— 使得可以连到数据库
对用户授权
角色管理 —— 权限的集合