首页主机资讯Debian上SQL Server的权限管理如何操作

Debian上SQL Server的权限管理如何操作

时间2025-12-13 03:04:04发布访客分类主机资讯浏览433
导读:Debian上SQL Server权限管理实操指南 一 环境准备与连接 安装与配置 更新系统并安装工具:sudo apt update && sudo apt install -y curl gnupg apt-tran...

Debian上SQL Server权限管理实操指南

一 环境准备与连接

  • 安装与配置
    • 更新系统并安装工具:sudo apt update & & sudo apt install -y curl gnupg apt-transport-https
    • 导入 GPG 并添加 APT 源(以 Debian 12 为例):
      • curl https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft-archive-keyring.gpg
      • echo “deb [signed-by=/usrusr/share/keyrings/microsoft-archive-keyring.gpg] https://packages.microsoft.com/debian/12/prod/ stable main” | sudo tee /etc/apt/sources.list.d/mssql-server.list > /dev/null
    • 安装 SQL Server 并完成初始化:sudo apt install -y mssql-server;sudo /opt/mssql/bin/mssql-conf setup
    • 安装命令行工具:sudo apt install -y mssql-tools unixodbc-dev
  • 连接数据库
    • 本地连接:sqlcmd -S localhost -U SA -P ‘YourStrongPassword’
    • 远程连接:sqlcmd -S 服务器IP或主机名,1433 -U 用户名 -P ‘密码’(确保防火墙放行 1433 端口)

二 核心概念与最小权限原则

  • 概念区分
    • 登录名(Login):存在于实例级,用于身份验证(如 CREATE LOGIN
    • 数据库用户(User):存在于数据库内,映射到登录名(如 CREATE USER … FOR LOGIN …
    • 角色(Role):数据库级(如 db_datareader、db_datawriter)或自定义角色,用于批量授权
  • 授权路径
    • 实例级:登录名 → 服务器角色(谨慎授予)
    • 数据库级:用户 → 数据库角色/架构/对象(细粒度控制)
  • 安全建议
    • 遵循最小权限原则:仅授予完成工作所需权限
    • 避免使用 SA 进行日常操作,为应用与人员创建专属登录/用户
    • 对生产环境变更前先备份,变更后在测试环境验证

三 常用操作速查

  • 登录名管理
    • 创建:CREATE LOGIN login_name WITH PASSWORD = ‘password’;
    • 修改密码:ALTER LOGIN login_name WITH PASSWORD = ‘new_password’;
    • 删除:DROP LOGIN login_name;
  • 数据库用户与映射
    • 在目标库创建用户并映射登录名:USE MyDatabase; CREATE USER user_name FOR LOGIN login_name;
    • 删除用户:DROP USER user_name;
  • 角色管理(数据库级)
    • 添加成员:ALTER ROLE db_datareader ADD MEMBER user_name;
    • 移除成员:ALTER ROLE db_datareader DROP MEMBER user_name;
  • 对象级权限
    • 授予:GRANT SELECT, INSERT, UPDATE, DELETE ON OBJECT::dbo.YourTable TO user_name;
    • 撤销:REVOKE SELECT ON OBJECT::dbo.YourTable FROM user_name;
  • 验证与审计
    • 查看某用户的数据库权限:USE MyDatabase; SELECT * FROM sys.database_permissions WHERE grantee_principal_id = USER_ID(‘user_name’);
    • 审计与监控:可启用 SQL Server AuditExtended Events 跟踪登录与关键操作

四 典型场景示例

  • 只读用户
    • 创建登录名与数据库用户:
      • CREATE LOGIN app_read WITH PASSWORD = ‘StrongP@ssw0rd!’;
      • USE SalesDB; CREATE USER app_read FOR LOGIN app_read;
    • 授予只读:ALTER ROLE db_datareader ADD MEMBER app_read;
  • 读写用户
    • 创建登录名与数据库用户:
      • CREATE LOGIN app_rw WITH PASSWORD = ‘StrongP@ssw0rd!’;
      • USE SalesDB; CREATE USER app_rw FOR LOGIN app_rw;
    • 授予读写:ALTER ROLE db_datawriter ADD MEMBER app_rw;
  • 表级精确授权
    • 仅允许对 dbo.Orders 的增改查:
      • USE SalesDB;
      • GRANT SELECT, INSERT, UPDATE ON OBJECT::dbo.Orders TO app_rw;
  • 撤销与验证
    • 撤销某表的 UPDATE:REVOKE UPDATE ON OBJECT::dbo.Orders FROM app_rw;
    • 验证权限:在目标库执行 SELECT * FROM sys.database_permissions WHERE grantee_principal_id = USER_ID(‘app_rw’); 并以该用户身份登录进行功能性验证

五 图形化管理与排错

  • 图形化管理
    • 可使用 SQL Server Management Studio(SSMS) 连接 Linux 上的 SQL Server,在“Security/Logins”“User Mapping”“Roles”“Securables”中完成登录、用户、角色与对象权限的配置
  • 常见问题排查
    • 连接失败:检查服务状态(sudo systemctl status mssql-server)、监听端口 1433、防火墙与连接字符串主机/端口
    • 权限不足:确认当前上下文数据库(USE DB; )、用户是否已映射到正确的登录名、是否加入了相应角色或拥有对象级授权
    • 密码策略:创建登录名时确保密码符合强度要求,必要时先 ALTER LOGIN 修改密码再分配权限

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


若转载请注明出处: Debian上SQL Server的权限管理如何操作
本文地址: https://pptw.com/jishu/771273.html
ubuntu中thinkphp的缓存机制如何设置

游客 回复需填写必要信息