我有几个脚本在某些Azure数据库中创建一些表,这些脚本由init.sh启动。如果我使用同一用户登录SSMS,我将传递给连接字符串,然后手动运行脚本,它们成功运行,没有问题。但是,当我运行代码时,我得到了以下内容:第一个月我使用的用户与手动运行的用户相同。这对我来说毫无意义。我错过了什么?我在虚拟机中的Docker容器中运行SQL DB上的代码,一切正常,创建了表。代码,不应该是问题。
fdx2calv1#
当我试图在master数据库中创建一个表时,我得到了如下所示的相同错误:x1c 0d1x的数据向用户授予使用以下代码解决错误的权限:
USE Master; GRANT CREATE TABLE TO <user>;
字符串
的在授予权限后,我可以在master数据库中创建一个表:
的但是,根据this,主数据库是一个系统数据库-它并不是真的让你在里面闲逛和存储东西。我们通常为主数据库设计不同的备份和恢复过程,而不是用户数据库。最好在专用数据库中创建表。有关详细信息,请参阅this。
wztqucjr2#
我的错误,第一个错误是下面的,然后是我原来的帖子:
USE statement is not supported to switch between databases. Use a new connection to connect to a different database.
字符串USE语句不适用于Azure SQL数据库。由于这不起作用,我认为它会默认master并尝试在那里创建:)
2条答案
按热度按时间fdx2calv1#
当我试图在master数据库中创建一个表时,我得到了如下所示的相同错误:
x1c 0d1x的数据
向用户授予使用以下代码解决错误的权限:
字符串
的
在授予权限后,我可以在master数据库中创建一个表:
的
但是,根据this,
主数据库是一个系统数据库-它并不是真的让你在里面闲逛和存储东西。我们通常为主数据库设计不同的备份和恢复过程,而不是用户数据库。
最好在专用数据库中创建表。有关详细信息,请参阅this。
wztqucjr2#
我的错误,第一个错误是下面的,然后是我原来的帖子:
字符串
USE语句不适用于Azure SQL数据库。由于这不起作用,我认为它会默认master并尝试在那里创建:)