top

笔记266 SQLSERVER2005中的应用程序角色 2013-5-5

笔记266 SQLSERVER2005中的应用程序角色  2013-5-5

复制代码
 1 --SQLSERVER2005中的应用程序角色  2013-5-5
 2 --应用程序角色 跟固定数据库角色跟数据库用户是并排的
 3 --应用程序角色是一个数据库主体,他使应用程序能够用其自身的、类似用户
 4 --的特权来运行。使用应用程序角色可以只允许通过特定应用程序连接的用户
 5 --访问特定数据
 6 
 7 --与数据库角色不同的是,应用程序角色默认情况下不包含任何成员,而且是非活动的。
 8 --应用程序角色使用两种身份验证模式,可以使用sp_setapprole来激活,并且需要密码
 9 --因为应用程序角色是数据库级别的主体,所以他们只能通过其他数据库中授予guest用户
10 --帐户的权限来访问这些数据库。因此,任何已禁用guest用户账户的数据库对其他数据库
11 --中的应用程序角色都是不可访问的
12 
13 --应用程序角色切换安全上下文的过程包括以下步骤
14 --(1)用户执行客户端应用程序
15 --(2)客户端应用程序作为用户连接到SQLSERVER
16 --(3)应用程序用一个只有他才知道的密码执行sp_setapprole存储过程
17 --(4)如果应用程序角色名称和密码都有效,将激活应用程序角色
18 --(5)此时,连接将失去用户权限,而获得应用程序角色权限
19 EXEC [sys].[sp_setapprole] @rolename = NULL, -- sysname
20     @password = NULL, -- sysname
21     @encrypt = '', -- varchar(10)
22     @fCreateCookie = NULL, -- bit
23     @cookie = NULL -- varbinary(50)
24 
25 --例如,创建一个名为AppRole的角色,并且在查询中激活该角色,操作步骤如下
26 EXEC [sys].[sp_setapprole] @rolename = 'Approle', -- sysname
27     @password = '123@ABC' -- sysname
28    
29 --在SQL的早期版本中,用户若要在激活应用程序角色后重新获取其原始安全上下文,唯一的方法就是
30 --断开SQLSERVER连接,然后重新连接。在SQL2005中,sp_setapprole提供了Cookie选项,他可以在
31 --激活应用程序之前创建一个包含上下文信息的Cookie。sp_unsetapprole可以使用此Cookie将会话
32 --恢复到其原始上下文
33 --EXEC [sys].[sp_unsetapprole] @cookie = NULL -- varbinary(50)
34 
35 DECLARE @cookie VARBINARY(8000)
36 EXEC [sys].[sp_setapprole] @rolename = 'Approle', -- sysname
37     @password = '123@ABC', -- sysname
38     @encrypt = '', -- varchar(10)
39     @fCreateCookie = true, -- bit
40     @cookie = @cookie OUTPUT -- varbinary(50)
复制代码

 

posted @   桦仔  阅读(893)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示