sql server 2000如何授权用户“修改表结构(alter table)”的权限

时间:2022-09-19 14:31:39
sql server2000数据库怎么对一个用户授权“修改表结构”? 

mssql 2005下的授权语句执行报错的
GRANT ALTER table ON data2008.[dbo].[PE_Article] TO [webuser]
错误消息:
 “在关键字 'ON' 附近有语法错误。”

16 个解决方案

#1


GRANT ALTER ON data2008.[dbo].[PE_Article] TO [webuser]

#2


建立帐户:
sp_addlogin 'loginname','password'
sp_adduser 'loginname','username'
至于权限,SQL Server使用基于对象的权限,需要对具体对象分别设置,假设有个表名为test,
可以作如下设置:
grant select on 表名 to username
grant update on 表名 to username
deny delete on 表名 to username

======
修改表结构?这个不常见,下面是我猜测的。
你试试呢:GRANT ALTER on  data2008.[dbo].[PE_Article] TO [webuser]

#3


引用 2 楼 zsh0809 的回复:
建立帐户:
sp_addlogin 'loginname','password'
sp_adduser 'loginname','username'
至于权限,SQL Server使用基于对象的权限,需要对具体对象分别设置,假设有个表名为test,
可以作如下设置:
grant select on 表名 to username
grant update on 表名 to userna……



GRANT ALTER on data2008.[dbo].[PE_Article] TO [webuser] 
一样不行的,报同样的错误,这个早就试过了

#4


alter table可以授权的吗?我刚刚联机丛书找了一圈没找到

#5


引用 4 楼 billpu 的回复:
alter table可以授权的吗?我刚刚联机丛书找了一圈没找到


alter table 可能不行,但
GRANT ALTER ON data2008.[dbo].[PE_Article] TO [webuser]
在mssql2005里是可以的授权,不过在2000里的执行报错的

好像在mssql2000里,不能对alter 授权,那应该怎样才能让用户webuser有对表pe_article 有修改表结构权限呢?

#6


2000 只能这样  GRANT CREATE TABLE TO [webuser]
有了create table 权限,就应该有alter 权限把

#7


引用 6 楼 cjzm83 的回复:
2000 只能这样  GRANT CREATE TABLE TO [webuser]
有了create table 权限,就应该有alter 权限把


很不幸,还是不行的;但还是要感谢热心帮忙
消息如下:
服务器: 消息 3704,级别 16,状态 1,行 1
用户没有在 表 'pe_article' 上执行该操作的权限。

#8


可能2000和2005不一样 我测试环境是2000,你那个alter不通过

#9


就在你原来那台服务器上做个磁盘扫描 看看有没有丢失的簇

#10


应该都不是。
发现mssql2000服务器的权限好像是通过sysindexes等sys*表的权限设置实现的,但还没有找到具体是怎么设置。

#11


呵呵,来学习一下,等高手解答。。。

#12


楼主找到解决办法了吗?
也有这样的问题

#13


表 'pe_article' 是建在哪个用户下的?只有那个用户才能给其他用户赋权限的吧。这是oracle的情况,可能和sql server2000不太一样

#14


GRANT ALTER table  TO [webuser]

#15


GRANT INSERT, UPDATE, DELETE
ON data2008.[dbo].[PE_Article] --alter table 是没有on
TO [webuser]
GO

#16


引用 14 楼 abuying 的回复:
SQL code
GRANT ALTER table  TO [webuser]

看来sql2000对修改表结构权限管理太粗放,只能对整个数据库授权是否允许。
这个语句执行应该是对的,只是在我的sql2000上还是出错了。

执行
GRANT ALTER table  TO [webuser]
时出错如下
服务器: 消息 165,级别 16,状态 2,行 7
不能授予或废除特权 ALTER TABLE。

这个应用是动易cms(asp+sql版),以前的管理员为了安全起见,大量修改几个系统表的权限,可能是造成这个错误应的原因。看来需要让web用户修改表结构操作时,把数据库配置成su用户,改过后再改回来。这才是解决方法,很功利,很麻烦,但实用。

#1


GRANT ALTER ON data2008.[dbo].[PE_Article] TO [webuser]

#2


建立帐户:
sp_addlogin 'loginname','password'
sp_adduser 'loginname','username'
至于权限,SQL Server使用基于对象的权限,需要对具体对象分别设置,假设有个表名为test,
可以作如下设置:
grant select on 表名 to username
grant update on 表名 to username
deny delete on 表名 to username

======
修改表结构?这个不常见,下面是我猜测的。
你试试呢:GRANT ALTER on  data2008.[dbo].[PE_Article] TO [webuser]

#3


引用 2 楼 zsh0809 的回复:
建立帐户:
sp_addlogin 'loginname','password'
sp_adduser 'loginname','username'
至于权限,SQL Server使用基于对象的权限,需要对具体对象分别设置,假设有个表名为test,
可以作如下设置:
grant select on 表名 to username
grant update on 表名 to userna……



GRANT ALTER on data2008.[dbo].[PE_Article] TO [webuser] 
一样不行的,报同样的错误,这个早就试过了

#4


alter table可以授权的吗?我刚刚联机丛书找了一圈没找到

#5


引用 4 楼 billpu 的回复:
alter table可以授权的吗?我刚刚联机丛书找了一圈没找到


alter table 可能不行,但
GRANT ALTER ON data2008.[dbo].[PE_Article] TO [webuser]
在mssql2005里是可以的授权,不过在2000里的执行报错的

好像在mssql2000里,不能对alter 授权,那应该怎样才能让用户webuser有对表pe_article 有修改表结构权限呢?

#6


2000 只能这样  GRANT CREATE TABLE TO [webuser]
有了create table 权限,就应该有alter 权限把

#7


引用 6 楼 cjzm83 的回复:
2000 只能这样  GRANT CREATE TABLE TO [webuser]
有了create table 权限,就应该有alter 权限把


很不幸,还是不行的;但还是要感谢热心帮忙
消息如下:
服务器: 消息 3704,级别 16,状态 1,行 1
用户没有在 表 'pe_article' 上执行该操作的权限。

#8


可能2000和2005不一样 我测试环境是2000,你那个alter不通过

#9


就在你原来那台服务器上做个磁盘扫描 看看有没有丢失的簇

#10


应该都不是。
发现mssql2000服务器的权限好像是通过sysindexes等sys*表的权限设置实现的,但还没有找到具体是怎么设置。

#11


呵呵,来学习一下,等高手解答。。。

#12


楼主找到解决办法了吗?
也有这样的问题

#13


表 'pe_article' 是建在哪个用户下的?只有那个用户才能给其他用户赋权限的吧。这是oracle的情况,可能和sql server2000不太一样

#14


GRANT ALTER table  TO [webuser]

#15


GRANT INSERT, UPDATE, DELETE
ON data2008.[dbo].[PE_Article] --alter table 是没有on
TO [webuser]
GO

#16


引用 14 楼 abuying 的回复:
SQL code
GRANT ALTER table  TO [webuser]

看来sql2000对修改表结构权限管理太粗放,只能对整个数据库授权是否允许。
这个语句执行应该是对的,只是在我的sql2000上还是出错了。

执行
GRANT ALTER table  TO [webuser]
时出错如下
服务器: 消息 165,级别 16,状态 2,行 7
不能授予或废除特权 ALTER TABLE。

这个应用是动易cms(asp+sql版),以前的管理员为了安全起见,大量修改几个系统表的权限,可能是造成这个错误应的原因。看来需要让web用户修改表结构操作时,把数据库配置成su用户,改过后再改回来。这才是解决方法,很功利,很麻烦,但实用。