溫馨提示×

Ubuntu上如何配置SQL Server權限

小樊
53
2025-09-29 03:52:02
欄目: 云計算

在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. 授予自定義權限(針對特定表或操作):
    若需更細粒度的控制,可直接授予表級權限(如SELECT、INSERT):
    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; -- 應失?。oDROP權限)
    

六、高級安全設置(可選)

  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權限配置的核心流程,可根據實際需求調整角色或權限范圍。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女