我有一个需要重命名数据库的用户。我可以给dbcreator特权,但这将允许用户重命名任何数据库,甚至创建新的数据库。
因此,我尝试创建一个存储过程,用户将调用该存储过程来执行该工作。
CREATE PROCEDURE SPMyRenameDB
WITH EXECUTE AS 'MySuperUser' -- MySuperUser is a SQL user with dbcreator permission
AS
ALTER DATABASE A MODIFY NAME = B
GO
我得到一个错误:在当前安全上下文中,服务器主体"MySuperUser“无法访问数