笔记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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现