执行GRANT DATABASE SCOPED CREDENTIAL语句出现语法错误的原因及解决方法
错误成因
- 运行环境不兼容:该
GRANT语句是Synapse专用SQL池的T-SQL语法,若你在无服务器SQL池、Spark池等非专用SQL池环境执行,语法解析器无法识别DATABASE SCOPED关键字,就会触发该报错。 - 数据库上下文错误:数据库作用域凭据仅存在于用户自定义数据库中,若你当前连接的是系统
master数据库执行该语句,也会触发语法解析异常。 - 符号格式错误:语句中的双冒号如果使用了中文全角符号,会被解析器识别为非法字符,触发格式报错。
修复步骤
- 第一步:确认执行环境
如果你要操作的是Synapse专用SQL池,切换到对应专用SQL池的连接客户端(比如SSMS、Synapse Studio的专用SQL池查询界面),不要用无服务器SQL池、Spark Notebook执行该语句。 - 第二步:切换数据库上下文
执行授权语句前先运行指定数据库的命令,切换到你创建了对应凭据的用户数据库:USE [你的自定义数据库名称] GO - 第三步:执行正确的授权语句
确认所有符号为英文半角后,运行官方要求的授权语句即可:GRANT REFERENCES ON DATABASE SCOPED CREDENTIAL::[mySynapseWorkspace] TO [myPurviewAccountName];
如果你要操作的是Synapse无服务器SQL池,不需要DATABASE SCOPED关键字,直接运行以下语句即可:
GRANT REFERENCES ON CREDENTIAL::[mySynapseWorkspace] TO [myPurviewAccountName];
内容的提问来源于stack exchange,提问作者nam
相关产品推荐
相关产品推荐

