SqlServer 设置账号增删改查权限语句

从数据库安全方面考虑,在项目发布的时候,我们一般不会直接使用 sa 账户来连接生产数据库,因为 sa 的权限非常高,一旦 sa 账户密码泄漏,对于整个项目而言可能是致命的。

一般情况下,我们可以在数据库中使用图形化的界面来分配数据库账户增删改查权限,其实我们也可以使用 Sql 语句来分配账户相应的权限。

declare @name varchar(50)
declare @sql varchar(max)
declare yb cursor for 
-- 设置账号存储过程 exec 权限
select name from sys.objects where type='p'
open yb 
	fetch next from yb into @name 
	while @@fetch_status=0
	begin
		set @sql='grant exec on ' + @name + ' to 数据库账号'
		exec(@sql)
		fetch next from yb into @name 
	end
close yb 
deallocate yb 

go 

declare @name varchar(50)
declare @sql varchar(max)
declare yb cursor for 
-- 设置账号 select,insert,update,delete 权限
select name from sys.objects where type='u'
open yb 
	fetch next from yb into @name 
	while @@fetch_status=0
	begin
		set @sql='grant select,insert,update,delete on ' + @name + ' to 数据库账号'
		exec(@sql)
		fetch next from yb into @name 
	end
close yb 
deallocate yb 

管理员

转载请注明出处!如果本博文或者本站对您(网站)的内容/素材构成侵权,请第一时间与本博主联系!

Press ESC to close