gpt4 book ai didi

sql-server - 如何暂时将系统管理员授予用户?

转载 作者:行者123 更新时间:2023-12-04 06:16:05 29 4
gpt4 key购买 nike

下面的代码在一个存储过程中,在用户下运行时会出现以下错误:premfguser。
由于当前安全上下文不受信任,因此拒绝访问远程服务器。

SET @provider = 'Microsoft.Jet.OLEDB.4.0'
SET @ExcelString = 'Excel 8.0;Database=' + @fn

EXEC('INSERT INTO OPENROWSET(''' + @provider + ''',''' + @ExcelString + ''',''SELECT * FROM [Sheet1$A2:L2]'')
SELECT [ITEMNUMBER],'''',[ITEM_DESCRIPTION],[CASEPACK],[UNIT PRICE],[CASE PRICE],[WEIGHT],[CUBE],[CASE DIMS],[UPC],[CASE UPC],[Q Comments] FROM [ORDER SUMMERY] WHERE [Order #] = ''' + @OrderNumber + '''')

当我将 premfguser 添加到 sysadmin 它工作。如何在不将 sysadmin 永久授予 premfguser 的情况下运行此代码?

最佳答案

使用 EXECUTE AS 用证书签署程序。见 this example关于如何签署程序,另见这篇文章Signing Procedures with Certificates而这个 Tutorial: Signing Stored Procedures with a Certificate .

请注意,将数据库标记为 TRUSTWORTHY 的替代方法意味着 dbo数据库是事实上的 sysadmin ,因为如果设置了可信位,他可以随时将自己升级为系统管理员。代码签名是一个更好的选择,尽管要复杂得多。

关于sql-server - 如何暂时将系统管理员授予用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7234680/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com