我创建了一个新架构,archive
并且能够在其中创建、读取、更新和删除表。
我EXTERNAL_USER
想向谁授予权限,以便他们可以select..into
对架构执行操作。
我已授予他们CREATE TABLE
对数据库的权限和SELECT
对架构的权限,但他们收到“指定的架构名称‘存档’不存在或您无权使用它”错误消息。
他们尝试运行的查询是:
select *
into archive.post
from core.post
该查询对我来说运行良好。
我还尝试为他们提供数据库中的db_datareader
和db_datawriter
角色,没有区别。
我完全没有想法了——我没有想到什么?
INTO
该条款的文档说:但
CREATE TABLE
说:您最终将创建一个表,因此您需要授予对存档模式(或数据库)
ALTER
的权限。ALTER ANY SCHEMA
文档可能应该说“需要与目标数据库
INTO
相同的权限”。CREATE TABLE
正如您所注意到的,如果您希望用户能够读取或写入他们在存档模式中创建的表,则需要授予单独的权限。
演示: