游客:
注册
|
登录
|
帮助
网友俱乐部
»
数据库操作
»
MSSQL教程
» SQL问题汇编(2)
网友生活网
|
网友学堂
如何获得金币?
诚招斑竹
IP归属地查询 PR查询 收录查询 whois查询
免费超短2级域名,your.jpy.cc
传世私服
|
传奇世界私服
注册亚洲交友中心,找个人来同居吧!
免费存储空间,免费网络硬盘
‹‹ 上一主题
|
下一主题 ››
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
标题: SQL问题汇编(2)
ljjk5
元帅
UID 46706
精华
1
积分 99426
帖子 49690
威望 554
金币 48489
热心 505
阅读权限 100
注册 2007-2-25
状态 离线
#1
使用道具
发表于 2007-7-5 09:19
资料
个人空间
主页
短消息
加为好友
SQL问题汇编(2)
还有其它值得提到的新特性吗?
我们还增加了DENY语句,可以被管理员用来禁止某个用户对一个对象的所有访问权限。在SQL
Server 6.5中你可以在一行上运行两次REVOKE语句来在某种程度上仿效DENY语句。
在SQL Server 7.0中,如果你想阻止某人查看某一个表,你可以使用DENY来禁止他的SELECT权限。使用DENY语句时应当非常小心。举个例子:假如你在AUTHORS表上有SELECT和INSERT的权限,而且作为某个NT组的成员,你还拥有UPDATE权限。然而,你所在的另一个NT组被DENY语句禁止了INSERT和UPDATE权限。结果是,你只有SELECT权限了。DENY语句会禁止对数据库对象的访问,因此你要确保没有对PUBLIC组使用DENY语句,因为任何用户都总是PUBLIC组中的成员。许多没有经验的管理员这样做了,然后他们只好打电话来向我们求助。
DENY不仅可以用于数据库对象,它还可以用于登录名。例如,你授予了NT组“domain
users”登录到SQL Server的权限。Joe刚刚被解雇了但是他还不知道。你不能简单地使用REVOKE语句来取消Joe的登录权限,因为他没有被单独授予登录权限,而是和其他成员一起作为“domain
users”组中的一个成员被一起授予登录权限。这时你就可以特别地对Joe使用DENY语句。这样他不能登录到SQL
Server了,而同一个组的其他成员仍然可以。
应用程序角色是如何工作的?
可能解释应用程序角色的最好方式是在实际情况中说明。比方说你想做一个职工工资单的应用程序,可以允许用户更新工资。当然你不希望允许用户简单地登录到SQL
Server中然后更改工资。如果雇员能够那样做的话,他就可能试图去更改他自己的工资了。更合适的方法是使用一个工资单应用程序,它能够执行特定的安全检查,例如,不允许用户更新他们自己的工资。
它是这样工作的。你的工资单应用程序以使用者的安全级别登录到SQL
Server,以便服务器审计追踪工具能够知道到底是谁在登录到SQL Server。然后你的应用程序切换到适当的数据库并调用系统存储过程“sp_setapprole”来启动应用程序角色。应用程序角色是受密码保护的,所以你需要把密码作为参数传递给sp_setapprole。当数据在网上传输时,你也可以对密码进行加密。
一旦启动了应用程序角色,用户现有的权限被关闭,应用程序角色的安全权限被相应打开。你的应用程序现在就可以使用应用程序角色来执行修改数据库的操作了。
需要注意的一个问题是,应用程序角色是特定于连接的。假如你同时打开了两个到SQL
Server的连接,你必须保证每个连接的应用程序角色都被打开了。使用应用程序角色时,一旦打开连接并转换到适当的数据库后,第一件事情就是调用“sp_setapprole”存储过程。如果不启动应用程序角色,你就不能够访问任何应用程序角色所专有的数据。
网友
ljjk5
签名 - 网友社区
===
[广告]
免费域名(Free Subdomain)
免费空间(Free hosting)
PR查询(Google Pagerank)
投票
交易
悬赏
活动
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
个人空间管理
基本概况
流量统计
客户软件
发帖量记录
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计
当前时区 GMT+8, 现在时间是 2008-10-12 13:53
信产部ICP备案:
京ICP备05066424号
北京市公安局网监备案:1101050648号
Powered by
Discuz!
5.5.0
TOP
清除 Cookies
-
联系我们
-
网友俱乐部
-
Archiver
-
WAP