我需要创建一个存储过程(1 个或多个),我可以在计划作业中从主数据库(或其他数据库)调用它,以将权限(用户和权限)恢复到已从源数据库恢复的数据库。我不想在源数据库级别创建用户,因为我想限制对该服务器的访问,因此一旦恢复完成就需要执行存储过程以授予访问权限。我目前有:
use (database);
if ( select objectproperty(object_id('dbo.spMaint_RestorePermissions_database'), 'IsProcedure') ) is null
exec ('create procedure dbo.spMaint_RestorePermissions_database as select 1');
go
alter procedure dbo.spMaint_RestorePermissions_database
as
set nocount on;
---- grant user permission to access database
create user [domain\userid] for login [domain\userid]
----- grant user access rights to database
exec sp_addrolemember 'db_datareader', 'domain\userid'
go