首页主机资讯Ubuntu上如何配置SQL Server权限

Ubuntu上如何配置SQL Server权限

时间2025-10-04 01:51:04发布访客分类主机资讯浏览824
导读:在Ubuntu上配置SQL Server权限的详细步骤 一、前置准备:安装SQL Server 在配置权限前,需先完成SQL Server的安装与基础配置。以下是关键步骤: 导入Microsoft GPG密钥:确保软件包来源可信wget...

在Ubuntu上配置SQL Server权限的详细步骤

一、前置准备:安装SQL Server

在配置权限前,需先完成SQL Server的安装与基础配置。以下是关键步骤:

  1. 导入Microsoft GPG密钥:确保软件包来源可信
    wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
    
  2. 注册SQL Server Ubuntu存储库(以Ubuntu 20.04为例)
    sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/ubuntu/20.04/mssql-server-2022 main"
    
  3. 安装SQL Server
    sudo apt-get update &
        &
         sudo apt-get install -y mssql-server
    
  4. 初始化配置:运行mssql-conf setup,按提示设置SA账户密码(系统管理员账户,需强密码)并选择SQL Server版本(如2022)。
  5. 启动服务
    sudo systemctl start mssql-server &
        &
         sudo systemctl enable mssql-server
    

二、配置SQL Server基础安全设置

权限管理需基于安全的环境,需完成以下配置:

  1. 开启TCP端口(默认1433):允许远程或本地连接
    sudo ufw allow 1433/tcp &
        &
         sudo ufw reload
    
  2. 设置数据目录权限:确保mssql用户(SQL Server运行账户)拥有数据目录所有权
    sudo chown -R mssql:mssql /var/opt/mssql &
        &
         sudo chmod -R 750 /var/opt/mssql
    
  3. 配置身份验证模式(可选):若需使用SQL Server身份验证(而非仅Windows身份验证),编辑mssql.conf文件
    sudo nano /var/opt/mssql/mssql.conf
    
    添加或修改以下内容,保存后重启服务:
    [security]
    loginMode=SQL
    

三、创建登录名与数据库用户

权限管理的核心是登录名(服务器级身份验证)和数据库用户(数据库级访问)的关联:

  1. 使用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'
    
  2. 创建SQL Server登录名(服务器级凭证)
    CREATE LOGIN [YourLoginName] WITH PASSWORD = 'YourComplexPassword123!';
        
    
  3. 切换至目标数据库(如YourDatabase)并创建用户
    USE YourDatabase;
        
    CREATE USER [YourUserName] FOR LOGIN [YourLoginName];
        
    

四、分配权限(角色或自定义)

根据用户需求分配预定义角色自定义权限,遵循最小权限原则

  1. 分配预定义角色(常用角色说明):
    • db_owner:拥有数据库所有权限(慎用,仅管理员需要);
    • db_datareader:仅读取数据(SELECT权限);
    • db_datawriter:仅写入数据(INSERT/UPDATE/DELETE权限)。
      示例(将用户添加至db_datareaderdb_datawriter角色):
    ALTER ROLE db_datareader ADD MEMBER [YourUserName];
        
    ALTER ROLE db_datawriter ADD MEMBER [YourUserName];
        
    
  2. 授予自定义权限(针对特定表或操作):
    若需更细粒度的控制,可直接授予表级权限(如SELECTINSERT):
    USE YourDatabase;
        
    GRANT SELECT, INSERT ON dbo.YourTable TO [YourUserName];
        
    

五、验证权限设置

  1. 断开当前连接,使用新用户重新连接:
    sqlcmd -S localhost -U YourUserName -P 'YourComplexPassword123!' -d YourDatabase
    
  2. 测试权限:尝试执行受限操作(如SELECT查询或INSERT插入),确认权限生效。例如:
    SELECT * FROM dbo.YourTable;
         -- 应成功(若拥有db_datareader权限)
    INSERT INTO dbo.YourTable (Column1) VALUES ('Test');
         -- 应成功(若拥有db_datawriter权限)
    DROP TABLE dbo.YourTable;
         -- 应失败(无DROP权限)
    

六、高级安全设置(可选)

  1. 启用登录审核:记录登录成功/失败记录,便于审计
    EXEC sp_configure 'show advanced options', 1;
        
    RECONFIGURE;
        
    EXEC sp_configure 'login auditing', 3;
         -- 0=无审核,1=失败,2=成功,3=全部
    RECONFIGURE;
        
    
  2. 定期审查权限:通过以下命令查看用户权限,及时移除不必要的权限:
    SELECT * FROM sys.database_permissions WHERE grantee_principal_id = USER_ID('YourUserName');
        
    SELECT * FROM sys.server_permissions WHERE grantee_principal_id = USER_ID('YourLoginName');
        
    

注意事项

  • 避免过度授权:不要将sysadmindb_owner角色授予普通用户,仅在必要时使用。
  • 密码策略:启用SQL Server密码策略(如复杂度要求),可通过sp_configure命令设置。
  • 备份配置:修改权限前备份数据库,防止误操作导致数据丢失。

以上步骤覆盖了Ubuntu上SQL Server权限配置的核心流程,可根据实际需求调整角色或权限范围。

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


若转载请注明出处: Ubuntu上如何配置SQL Server权限
本文地址: https://pptw.com/jishu/719395.html
Debian FTPServer与其他FTP服务器比较如何 Debian FTPServer更新版本有哪些变化

游客 回复需填写必要信息