SQL Server 2012数据库应用与开发教程(第三版) 作者 卫 琳 主编 模块11 SQLServer的安全机制.pptVIP

  • 6
  • 0
  • 约1.71万字
  • 约 108页
  • 2017-07-07 发布于广东
  • 举报

SQL Server 2012数据库应用与开发教程(第三版) 作者 卫 琳 主编 模块11 SQLServer的安全机制.ppt

限制对表的访问,两种方法 1.)如果已为用户授予了表的某种权限,则应该使用revoke语句清除之前授予的权限。 revoke select on su1.t1 from peter 不能执行update,delete,操作,只能执行insert操作 2)如果隶属于某个拥有此权限的角色,则用户可能依然具备通过revoke语句取消的权限。这种情况下,需要使用deny语句来拒绝此用户的访问。 use test go create role myrole grant select on course to myrole exec sp_addrolemember myrole,u3 exec sp_addrolemember myrole,u4 deny select on course to u3 revole select on course from u3 grant select,update(sno,sname) on su1.student to u2 select sno,sname from su1.student update su1.student set sno=2009056101,sname=汪远冬 where sno=2008056101 select sno,sname from su1.student revoke update(sname) on su1.student to u2 2.提供对列的单独访问 use test go create procedure c1 @xh char(10) as select * from student where sno=@xh Go use test go grant execute on c1 to peter Peter登录后执行c1过程 execute c1 2008056103 任务11.7 管理对可编程对象的访问 1.管理存储过程的安全性 create function su1.func1 (@xh char(10)) returns table as return select sno,sname from student where sno=@xh Go grant select on su1.func1 to peter Peter登录后执行su1.func1内联表值函数 use test go select * from su1.func1(2008056103) 说明:select 权限:可以选择表值函数返回的数据(只对表值函数有效) 2.管理用户定义函数的安全性 只对表值函数有效的select权限 use test go create function func2 (@para1 real,@para2 real) returns real as begin declare @para real if @para1@para2 set @para=@para1 else set @para=@para2 return(@para) end Go grant execute on func2 to peter use test declare @par real exec @par=dbo.func2 12.8,9.6 select @par as 最大数 go 只对标量函数有效的execute权限 execute as login/user 作为DBA,可能经常需要帮助Developer排除有关权限的问题。要确认某个账号是不是已经拥有了某权限,DBA并不需要使用该账号的登录名和密码进行验证,只需使用execute as语句,将当前会话的上下文切换到指定的login(登录)或者user(用户),就可以验证该账号是否拥有某权限。 execute as user=user_name 该语句模拟的上下文是当前数据库中的user,模拟范围仅限于当前数据库,任何对该数据库以外的资源的访问尝试都会导致失败,不管该user是否拥有相应权限。 execute as login=login_name 该语句模拟的上下文是一个login,模拟范围处于服务器级别,可以访问当前数据库之外的资源,只要该login拥有相应权限。 任务11.8 疑难解惑 1. 假如用户已经在SQL Server服务器内为Windows组已创建登录账户,为便于组成员能够访问某库下某些对象,用户还需做什么? 2. 如何使应用程序角色有效? use 学生课程数据库 go create user jacku for login jack use 学生课程数据库 go exec sp_addrol

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档