SQL 数据库创建表权限被拒绝

问题描述 投票:0回答:2

我有一些脚本可以在某些 Azure 数据库中创建一些表,这些脚本是由 init.sh 启动的。如果我使用同一用户登录 SSMS,我将传递到连接字符串,然后手动运行脚本,它们成功运行,没有任何问题。然而,当我运行我的代码时,我得到了这个:

CREATE TABLE permission denied in database 'master'.

我使用的用户与手动运行的用户相同。这对我来说毫无意义。我错过了什么?我在虚拟机中的 Docker 容器中运行的 SQL DB 上测试了代码,一切正常,表已创建。代码,不应该是问题。

sql azure permissions permission-denied
2个回答
1
投票

当我尝试在 master 数据库中创建表时,出现了如下所示的相同错误:

enter image description here

使用以下代码向用户授予解决错误的权限:

USE Master;
GRANT CREATE TABLE TO <user>;

enter image description here

授予权限后,我可以在master数据库中创建一个表:

enter image description here

但是,按照这个

主数据库是一个系统数据库 - 它并不是真正供您浏览和存储内容的。我们通常为主数据库而不是用户数据库设计不同的备份和恢复流程。

最好在专用数据库中创建表。更多信息,您可以参考这个


0
投票

我的错误,第一个错误是下面的错误,然后是我原来的帖子中的错误:

USE statement is not supported to switch between databases. Use a new connection to connect to a different database.

USE 语句不适用于 Azure SQL 数据库。由于这不起作用,我认为它会将 master 作为默认值并尝试在那里创建:)

© www.soinside.com 2019 - 2024. All rights reserved.