关于SQL SERVER 2000存储过程带参数的问题? (100分)

  • 主题发起人 主题发起人 qingfei
  • 开始时间 开始时间
Q

qingfei

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在程序里动态的给用户授予对某些表的权限
比如
对用户1只授select权限
grant select on table1 to user1

对用户2授予select,update权限
grant select,update on table1 to user2

因此我想写个存储过程如下

CREATE PROCEDURE mypro
@logo_grant varchar(40),
@logo_user varchar(8)
AS
grant @logo_grant on table1 to @logo_user
grant @logo_grant on table2 to @logo_user



@logo_grant参数是我在程序里动态生成的诸如"select,update,insert"的字符串
@logo_user参数是不同的用户,比如user1或user2

以上存储过程我在sql server 2000里测试没通过,提示语法错误!
我的方法是不是不行呀?
如果不行,要实现我的功能,该怎么做?
 
CREATE PROCEDURE mypro
@logo_grant varchar(40),
@logo_user varchar(8)
AS
declare @str varchar(1000)
set @str='grant '+ @logo_grant+' on table1 to '+@logo_user
set @str=@str+' grant '+@logo_grant '+ on table2 to '+ @logo_user
exec(@str)
试试
 
只能组织字符串,再用execsql来执行
 
提示什么错误,是不是'用户或组没有找到',若是这样,
可能没有此用户
 
多人接受答案了。
 
后退
顶部