参考下面的最简示例:
--添加只允许访问指定表的用户:
exec sp_addlogin '用户名','密码','默认数据库名'
--添加到数据库
exec sp_grantdbaccess '用户名'
--分配整表权限
GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用户名]--分配权限到具体的列
GRANT SELECT , UPDATE ON table1(id,AA) TO [用户名]
--添加只允许访问指定表的用户:
exec sp_addlogin '用户名','密码','默认数据库名'
--添加到数据库
exec sp_grantdbaccess '用户名'
--分配整表权限
GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用户名]--分配权限到具体的列
GRANT SELECT , UPDATE ON table1(id,AA) TO [用户名]
http://community.csdn.net/Expert/topic/4173/4173254.xml?temp=2.302188E-02
use master
go
sp_dropuser test
go
use TEST --要增加权限的数据库
go
sp_dropuser test
go
sp_droplogin test
go
-- 增加test用户
use master
go
sp_addlogin 'test','password','master'
go
sp_defaultlanguage 'test'
go
sp_defaultdb 'test','master'
go
sp_adduser 'test','password','db_owner'
go
use TEST --要增加权限的数据库
go
sp_adduser 'test','password','db_owner'
go
use TEST --要增加权限的数据库
go
drop table #tem
go
declare @max int
declare @min int
declare @str char(120)
declare @table char(30)create table #tem(
NO int,
name char(40)
)
insert #tem select 0,name from sysobjects where type in('U','V')
set rowcount 1
select @min=1,@max=count(*) from #tem
while @min<=@max begin
update #tem set NO=@min where NO=0
select @min=@min+1
end
set rowcount 0
select @min=1,@max=max(NO) from #tem
while @min<=@max begin
select @table=name from #tem where NO=@min
select @str=' grant select on '+@table+' to test'
exec (@str)
select @min=@min+1
end
go
--添加只允许访问指定表的用户:
exec sp_addlogin '用户名','密码','默认数据库名'
--添加到数据库
exec sp_grantdbaccess '用户名'
--分配整表权限
GRANT SELECT , INSERT , UPDATE , DELETE ON table1 TO [用户名]--分配权限到具体的列
GRANT SELECT , UPDATE ON table1(id,AA) TO [用户名]
use TEST --要增加权限的数据库
go
sp_dropuser test
go
sp_droplogin test
go
-- 增加test用户
use TEST --要增加权限的数据库
go
sp_addlogin 'test','password','TEST'
go
sp_defaultlanguage 'test'
go
sp_defaultdb 'test','TEST'
go
sp_adduser 'test','test','db_owner'
gouse TEST --要增加权限的数据库
go
drop table #tem
go
declare @max int
declare @min int
declare @str char(120)
declare @table char(30)create table #tem(
NO int,
name char(40)
)
insert #tem select 0,name from sysobjects where type in('U','V')
set rowcount 1
select @min=1,@max=count(*) from #tem
while @min<=@max begin
update #tem set NO=@min where NO=0
select @min=@min+1
end
set rowcount 0
select @min=1,@max=max(NO) from #tem
while @min<=@max begin
select @table=name from #tem where NO=@min
select @str=' grant select on '+@table+' to test'
exec (@str)
select @min=@min+1
end
go