首页主机资讯SQL Server在CentOS上的权限设置指南是什么

SQL Server在CentOS上的权限设置指南是什么

时间2025-10-28 21:56:04发布访客分类主机资讯浏览1325
导读:一、前置准备:安装并启动SQL Server 在CentOS上设置权限前,需先完成SQL Server的安装与基础配置。通过Microsoft官方YUM仓库安装SQL Server(如2019版),并设置SA超级用户密码(要求包含大小写字母...

一、前置准备:安装并启动SQL Server
在CentOS上设置权限前,需先完成SQL Server的安装与基础配置。通过Microsoft官方YUM仓库安装SQL Server(如2019版),并设置SA超级用户密码(要求包含大小写字母、数字和特殊字符,长度≥8位)。安装完成后,启动服务并设置开机自启:

sudo yum install -y mssql-server  # 安装SQL Server
sudo /opt/mssql/bin/mssql-conf setup  # 初始化实例(设置版本、SA密码)
sudo systemctl start mssql-server  # 启动服务
sudo systemctl enable mssql-server  # 开机自启

验证服务状态:systemctl status mssql-server(显示“active (running)”即为成功)。

二、配置SQL Server服务账户权限(系统级)
SQL Server服务需以专用账户(默认mssql)运行,确保其对数据目录、日志目录有读写权限:

  1. 修改服务配置文件(/etc/sysconfig/mssql-server),确认SQLSERV32SQLAGENT32路径正确(默认指向/opt/mssql/bin);
  2. 授权数据目录(/var/opt/mssql/data)给mssql用户:
    sudo chown -R mssql:mssql /var/opt/mssql/data  # 递归修改所有者
    sudo chmod -R 750 /var/opt/mssql/data  # 设置权限(所有者可读写执行,组用户可读执行)
    

此步骤防止因权限不足导致SQL Server无法启动或访问数据。

三、创建登录账户(服务器级)
登录账户用于连接SQL Server实例,分为SQL Server身份验证(用户名/密码)和Windows身份验证(域用户,需域环境)。以SQL Server身份验证为例,通过sqlcmd命令行创建:

sqlcmd -S localhost -U sa -P 'Your_SA_Password'  # 连接到实例(SA账户)
CREATE LOGIN [your_username] WITH PASSWORD = 'StrongPassword123!'  # 创建登录账户
GO

注意:密码需符合复杂度要求(避免使用简单密码),并避免使用sa账户进行日常操作。

四、创建数据库用户并关联登录账户(数据库级)
登录账户需关联到具体数据库,才能访问该数据库中的对象。以YourDatabase数据库为例:

USE [YourDatabase]  # 切换到目标数据库
CREATE USER [your_username] FOR LOGIN [your_username]  # 创建数据库用户并关联登录账户
GO

此步骤确保登录账户仅能访问授权的数据库。

五、分配数据库角色(权限模板)
SQL Server提供内置角色,快速分配常用权限:

  • db_datareader:授予用户对数据库中所有表的SELECT权限(只读);
  • db_datawriter:授予用户对数据库中所有表的INSERTUPDATEDELETE权限(读写);
  • db_ddladmin:授予用户创建/修改表、视图等对象的权限(开发人员常用)。
    分配角色的SQL语句:
USE [YourDatabase]
EXEC sp_addrolemember 'db_datareader', 'your_username'  # 添加到只读角色
EXEC sp_addrolemember 'db_datawriter', 'your_username'  # 添加到读写角色
GO

提示:优先使用内置角色,减少自定义权限的管理复杂度。

六、自定义角色与细粒度权限(高级需求)
若内置角色无法满足需求(如仅允许访问特定表),可创建自定义角色并分配具体权限:

  1. 创建自定义角色:
    USE [YourDatabase]
    CREATE ROLE [custom_report_role]  # 创建自定义角色
    GO
    
  2. 分配具体权限(如SELECT权限给Sales表的特定列):
    USE [YourDatabase]
    GRANT SELECT ON [dbo].[Sales] ([OrderID], [CustomerName], [OrderDate]) TO [custom_report_role]  # 授予指定列的SELECT权限
    GO
    
  3. 将用户添加到自定义角色:
    USE [YourDatabase]
    EXEC sp_addrolemember 'custom_report_role', 'your_username'
    GO
    

此步骤实现“最小权限原则”,降低安全风险。

七、验证权限设置
通过SQL命令或SSMS验证用户权限:

  1. 使用新用户登录(sqlcmd或SSMS):
    sqlcmd -S localhost -U your_username -P 'Your_Password'  # 使用普通用户登录
    
  2. 执行测试查询(如SELECT操作):
    SELECT * FROM [dbo].[Sales]  # 测试只读权限
    INSERT INTO [dbo].[Sales] ([OrderID], [CustomerName], [OrderDate]) VALUES (1001, 'John Doe', '2025-10-28')  # 测试读写权限(需有对应权限)
    GO
    

若查询成功,说明权限设置正确;若报错(如“SELECT权限被拒绝”),需检查角色分配或权限语句。

八、安全加固措施

  1. 禁用SA账户:若无需使用SA账户,可通过以下命令禁用:
    ALTER LOGIN sa DISABLE  # 禁用SA账户
    
  2. 限制远程访问:通过防火墙(firewalld)仅开放SQL Server端口(默认1433),禁止不必要的IP访问:
    sudo firewall-cmd --permanent --zone=public --add-port=1433/tcp  # 开放端口
    sudo firewall-cmd --reload  # 生效
    
  3. 启用加密连接:修改SQL Server配置,强制加密客户端连接(提升数据传输安全):
    sudo /opt/mssql/bin/mssql-conf set network.forceencryption 1  # 启用强制加密
    sudo systemctl restart mssql-server  # 重启服务
    
  4. 定期审计日志:开启登录审核,监控异常访问(如多次失败登录):
    ALTER LOGIN your_username SET LOGIN AUDIT ON  # 开启用户登录审计
    

这些措施可有效降低SQL Server被攻击的风险。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: SQL Server在CentOS上的权限设置指南是什么
本文地址: https://pptw.com/jishu/737222.html
CentOS Node.js安装步骤是什么 CentOS下SQL Server的备份与恢复流程是怎样的

游客 回复需填写必要信息