如何在存储过程中设置多个账号执行

0与1之间 2017-07-10 04:30:57
例如:
create proc [dbo].[Test]
@typeid int
as
begin
if @typeid=1
begin
使用账号1执行
.....
end
if @typeid=2
begin
使用账号2执行
.....
end
if @typeid=3
begin
使用账号3执行
.....
end
.......
end
只记得大概是set ***name=‘账号’,具体的忘记了,求大神们指点,谢谢!
...全文
201 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
0与1之间 2017-07-11
  • 打赏
  • 举报
回复
引用 7 楼 z10843087 的回复:
[quote=引用 6 楼 Merry0101 的回复:] [quote=引用 5 楼 z10843087 的回复:]
EXECUTE AS LOGIN = 'sa'; 就可以实现你说的功能,你可以试试。。[/quote] 好的,我试试,谢谢!
OwenZeng_DBA 2017-07-10
  • 打赏
  • 举报
回复
引用 6 楼 Merry0101 的回复:
[quote=引用 5 楼 z10843087 的回复:]
EXECUTE AS LOGIN = 'sa'; 就可以实现你说的功能,你可以试试。。
0与1之间 2017-07-10
  • 打赏
  • 举报
回复
引用 5 楼 z10843087 的回复:
SELECT SYSTEM_USER 可以获取账号,刚才忘记贴了。 [quote=引用 4 楼 Merry0101 的回复:] [quote=引用 3 楼 wmxcn2000 的回复:] 什么账号?应用系统的,还是数据库的?
只要是数据库里的账号都可以[/quote] 你说的是不是 EXECUTE AS USER = 'sa'; 以前只在存储过程调用的时候用过。。这么做的目的是什么[/quote] 不是 比如说我存储过程是用账号1执行的,但是我账号1没有存储过程中某一段代码权限,但账号2有,那我可以在执行这段代码的时间切换成账号2执行
OwenZeng_DBA 2017-07-10
  • 打赏
  • 举报
回复
SELECT SYSTEM_USER 可以获取账号,刚才忘记贴了。
引用 4 楼 Merry0101 的回复:
[quote=引用 3 楼 wmxcn2000 的回复:] 什么账号?应用系统的,还是数据库的?
只要是数据库里的账号都可以[/quote] 你说的是不是 EXECUTE AS USER = 'sa'; 以前只在存储过程调用的时候用过。。这么做的目的是什么
0与1之间 2017-07-10
  • 打赏
  • 举报
回复
引用 3 楼 wmxcn2000 的回复:
什么账号?应用系统的,还是数据库的?
只要是数据库里的账号都可以
卖水果的net 版主 2017-07-10
  • 打赏
  • 举报
回复
什么账号?应用系统的,还是数据库的?
0与1之间 2017-07-10
  • 打赏
  • 举报
回复
引用 1 楼 z10843087 的回复:
[quote=引用 楼主 Merry0101 的回复:] 例如: create proc [dbo].[Test] @typeid int as begin if @typeid=1 begin 使用账号1执行 ..... end if @typeid=2 begin 使用账号2执行 ..... end if @typeid=3 begin 使用账号3执行 ..... end ....... end 只记得大概是set ***name=‘账号’,具体的忘记了,求大神们指点,谢谢!
就目前所知没有这种操作,你做这种操作的原因是什么. 不过你可以在存储过程中 获取登陆的用户名,然后 根据判断,走不同的逻辑。 [/quote] 有的,使用过,但具体的不记得怎么写了
OwenZeng_DBA 2017-07-10
  • 打赏
  • 举报
回复
引用 楼主 Merry0101 的回复:
例如: create proc [dbo].[Test] @typeid int as begin if @typeid=1 begin 使用账号1执行 ..... end if @typeid=2 begin 使用账号2执行 ..... end if @typeid=3 begin 使用账号3执行 ..... end ....... end 只记得大概是set ***name=‘账号’,具体的忘记了,求大神们指点,谢谢!
就目前所知没有这种操作,你做这种操作的原因是什么. 不过你可以在存储过程中 获取登陆的用户名,然后 根据判断,走不同的逻辑。

34,571

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧