Debian上SQL Server的权限管理如何操作
导读: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 Audit 与 Extended 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;
- 仅允许对 dbo.Orders 的增改查:
- 撤销与验证
- 撤销某表的 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
