Ubuntu上如何配置SQL Server权限
导读:在Ubuntu上配置SQL Server权限的详细步骤 一、前置准备:安装SQL Server 在配置权限前,需先完成SQL Server的安装与基础配置。以下是关键步骤: 导入Microsoft GPG密钥:确保软件包来源可信wget...
在Ubuntu上配置SQL Server权限的详细步骤
一、前置准备:安装SQL Server
在配置权限前,需先完成SQL Server的安装与基础配置。以下是关键步骤:
- 导入Microsoft GPG密钥:确保软件包来源可信
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
- 注册SQL Server Ubuntu存储库(以Ubuntu 20.04为例)
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/ubuntu/20.04/mssql-server-2022 main"
- 安装SQL Server
sudo apt-get update & & sudo apt-get install -y mssql-server
- 初始化配置:运行
mssql-conf setup
,按提示设置SA账户密码(系统管理员账户,需强密码)并选择SQL Server版本(如2022)。 - 启动服务
sudo systemctl start mssql-server & & sudo systemctl enable mssql-server
二、配置SQL Server基础安全设置
权限管理需基于安全的环境,需完成以下配置:
- 开启TCP端口(默认1433):允许远程或本地连接
sudo ufw allow 1433/tcp & & sudo ufw reload
- 设置数据目录权限:确保
mssql
用户(SQL Server运行账户)拥有数据目录所有权sudo chown -R mssql:mssql /var/opt/mssql & & sudo chmod -R 750 /var/opt/mssql
- 配置身份验证模式(可选):若需使用SQL Server身份验证(而非仅Windows身份验证),编辑
mssql.conf
文件
添加或修改以下内容,保存后重启服务:sudo nano /var/opt/mssql/mssql.conf
[security] loginMode=SQL
三、创建登录名与数据库用户
权限管理的核心是登录名(服务器级身份验证)和数据库用户(数据库级访问)的关联:
- 使用sqlcmd连接SQL Server(需安装
mssql-tools
)sudo apt-get install mssql-tools & & echo 'export PATH="$PATH:/opt/mssql-tools/bin"' > > ~/.bashrc & & source ~/.bashrc sqlcmd -S localhost -U SA -P 'YourStrongPassword'
- 创建SQL Server登录名(服务器级凭证)
CREATE LOGIN [YourLoginName] WITH PASSWORD = 'YourComplexPassword123!';
- 切换至目标数据库(如
YourDatabase
)并创建用户USE YourDatabase; CREATE USER [YourUserName] FOR LOGIN [YourLoginName];
四、分配权限(角色或自定义)
根据用户需求分配预定义角色或自定义权限,遵循最小权限原则:
- 分配预定义角色(常用角色说明):
db_owner
:拥有数据库所有权限(慎用,仅管理员需要);db_datareader
:仅读取数据(SELECT
权限);db_datawriter
:仅写入数据(INSERT
/UPDATE
/DELETE
权限)。
示例(将用户添加至db_datareader
和db_datawriter
角色):
ALTER ROLE db_datareader ADD MEMBER [YourUserName]; ALTER ROLE db_datawriter ADD MEMBER [YourUserName];
- 授予自定义权限(针对特定表或操作):
若需更细粒度的控制,可直接授予表级权限(如SELECT
、INSERT
):USE YourDatabase; GRANT SELECT, INSERT ON dbo.YourTable TO [YourUserName];
五、验证权限设置
- 断开当前连接,使用新用户重新连接:
sqlcmd -S localhost -U YourUserName -P 'YourComplexPassword123!' -d YourDatabase
- 测试权限:尝试执行受限操作(如
SELECT
查询或INSERT
插入),确认权限生效。例如:SELECT * FROM dbo.YourTable; -- 应成功(若拥有db_datareader权限) INSERT INTO dbo.YourTable (Column1) VALUES ('Test'); -- 应成功(若拥有db_datawriter权限) DROP TABLE dbo.YourTable; -- 应失败(无DROP权限)
六、高级安全设置(可选)
- 启用登录审核:记录登录成功/失败记录,便于审计
EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'login auditing', 3; -- 0=无审核,1=失败,2=成功,3=全部 RECONFIGURE;
- 定期审查权限:通过以下命令查看用户权限,及时移除不必要的权限:
SELECT * FROM sys.database_permissions WHERE grantee_principal_id = USER_ID('YourUserName'); SELECT * FROM sys.server_permissions WHERE grantee_principal_id = USER_ID('YourLoginName');
注意事项
- 避免过度授权:不要将
sysadmin
或db_owner
角色授予普通用户,仅在必要时使用。 - 密码策略:启用SQL Server密码策略(如复杂度要求),可通过
sp_configure
命令设置。 - 备份配置:修改权限前备份数据库,防止误操作导致数据丢失。
以上步骤覆盖了Ubuntu上SQL Server权限配置的核心流程,可根据实际需求调整角色或权限范围。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu上如何配置SQL Server权限
本文地址: https://pptw.com/jishu/719395.html