授予执行过程的权限,包括所有必需的其他权限

时间:2016-03-09 10:12:45

标签: sql-server stored-procedures permissions sql-server-2012

我有一个技术用户,对数据库的权限非常有限。我授予了其中一个程序的权限,但是这个程序使用了很多其他的东西(特别是引用其他数据库)。

我的程序如下:

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_dbyet_another_db

如何授予存储过程权限,包括实际执行该过程所需的所有权限?

1 个答案:

答案 0 :(得分:0)

以下是提供访问其他数据库的不同方案的链接:

https://www.mssqltips.com/sqlservertip/2549/options-for-cross-database-access-within-sql-server/

简而言之:您必须授予此用户访问权限或遵循证书签名方案(请查看该文章末尾的其他链接。

Cert方案将允许您不将当前用户映射到其他数据库,也不会明确地向他提供该数据库的任何权限。但是他将能够运行这个访问其他数据库的过程。