【发布时间】:2021-06-30 13:11:08
【问题描述】:
我收到以下操作系统错误:
代码3(系统找不到指定的路径。)
客户端机器是 windows 10,MSSQL 服务器在 Ubuntu 20.04 上运行。
查询是
Declare @JSON varchar(max)
SELECT @JSON=BulkColumn
FROM OPENROWSET (BULK '/home/user/RC_2015-01.json', SINGLE_CLOB) import
SELECT *
FROM OPENJSON (@JSON)
文件/home/user/RC_2015-01.json 本地存在于MSSQL 服务器上。我也做了一个 sudo chown mssql RC_2015-01.json。
文件权限如下:-r-xr-xr-x 1 mssql user 31648374104 Jun 24 23:54 RC_2015-01.json
【问题讨论】:
-
mssql用户或组是否有权执行和读取目录/home/user?虽然通常情况下,主目录具有755的默认权限,但并非总是如此。 -
您也可以尝试以
mssql用户身份访问该文件。使用sudo su mssql模拟用户。然后使用cat(或tail,如果它是一个非常大的文件)尝试读取内容:cat /home/user/RC_2015-01.json -
然而,理想情况下,我建议不要将
mssql用户需要访问的数据存储在/home目录中。相反,把它放在它明确有权读取和写入的地方。这可能意味着在你的根目录中创建一个新文件夹,或者像/media目录这样的地方,或者 SQL Server 存储它的文件的地方(/var/opt/mssql在 Ubuntu 上) .
标签: sql-server sql-server-on-linux