从数据库安全方面考虑,在项目发布的时候,我们一般不会直接使用 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