Azure Data Studio创建数据库报MSG 5123 Access is denied错误如何解决
报错原因
你遇到的权限报错核心是:Ubuntu环境下SQL Server服务默认以mssql系统用户运行,你指定的数据库存储路径/home/Desktop/Vjezba_DB仅对当前登录的普通用户开放读写权限,mssql用户没有访问该路径的权限,因此建库时创建物理文件失败。
完整报错信息:
Msg 5123, Level 16, State 1, Line 1
CREATE FILE encountered operating system error 5(Access is denied.) while attempting to open or create the physical file '/home/Desktop/Vjezba_DB'.
解决方案
方案一:修改建库路径到SQL Server默认存储目录(推荐,无额外权限配置风险)
SQL Server安装时会自动创建专属数据存储目录,mssql用户对该目录有完整读写权限,直接修改建库SQL中的FILENAME参数到默认路径即可,默认存储路径为/var/opt/mssql/data/,参考建库SQL如下:
CREATE DATABASE Vjezba_DB ON ( NAME = Vjezba_DB_Data, FILENAME = '/var/opt/mssql/data/Vjezba_DB.mdf', SIZE = 10MB, MAXSIZE = UNLIMITED, FILEGROWTH = 64MB ) LOG ON ( NAME = Vjezba_DB_Log, FILENAME = '/var/opt/mssql/data/Vjezba_DB.ldf', SIZE = 32MB, MAXSIZE = 2GB, FILEGROWTH = 32MB );
方案二:若必须存储到/home/Desktop路径,手动配置目录权限
执行以下终端命令给mssql用户开放目标路径的读写权限:
- 先创建目标存储目录(若目录不存在):
sudo mkdir -p /home/Desktop/Vjezba_DB - 修改目录的所有者为
mssql用户和用户组:sudo chown -R mssql:mssql /home/Desktop/Vjezba_DB - 配置目录的权限控制:
sudo chmod -R 700 /home/Desktop/Vjezba_DB
权限配置完成后,重新在Azure Data Studio执行原建库SQL即可。
内容的提问来源于stack exchange,提问作者Malik Bajramovic
相关产品推荐
相关产品推荐

