【发布时间】:2016-06-23 15:38:39
【问题描述】:
我有一个技术用户,对数据库的权限非常有限。我授予了其中一个过程的权限,但这个过程使用了很多其他东西(尤其是引用其他数据库)。
我的程序如下所示:
CREATE PROCEDURE dbo.example AS BEGIN
SELECT * FROM other_db.dbo.table
SELECT * FROM yet_another_db.dbo.table
INSERT INTO dbo.some_local_tables VALUES (1,2,3)
END
用户目前无权访问other_db和yet_another_db。
如何向存储过程授予权限,包括实际执行该过程所需的所有权限?
【问题讨论】:
-
with execute as owner -
@IvanStarostin 将
with execute as owner给予额外的权限,比如改变程序? -
在您的问题中详细说明此 SP 中发生的情况。以及如何组织跨数据库访问。要调用其他 SP,请访问表 - 是的,这就足够了。
-
我在这个过程中看不到任何
ALTER PROC命令。你为什么问这个? -
@IvanStarostin 我想授予
execute过程的权限,如果可能的话,不授予任何进一步的权限,例如更改或删除过程,或任何其他权限。
标签: sql-server stored-procedures permissions sql-server-2012