温馨提示×

Ubuntu如何管理SQL Server用户权限

小樊
38
2025-11-22 11:51:27
栏目: 云计算

Ubuntu上管理 SQL Server 用户权限的实用指南

一 环境准备与连接

  • 安装命令行工具:sudo apt-get update && sudo apt-get install -y mssql-tools unixodbc-dev。将工具目录加入 PATH(常见为 /opt/mssql-tools/bin)。
  • 连接数据库:sqlcmd -S localhost -U SA -P ‘YourStrongPassword’。如需远程连接,使用服务器IP或主机名替换 localhost,并确保网络与防火墙已放行 1433/TCP
  • 基本连通性检查:在 sqlcmd 中执行 SELECT 1 验证连接正常。

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

  • 区分层级:
    • 服务器级主体:LOGIN(用于登录实例)。
    • 数据库级主体:USER(映射到 LOGIN,在特定数据库内拥有权限)。
    • 权限类型:
      • 系统权限(服务器级,如创建数据库、管理登录)。
      • 对象权限(数据库对象级,如 SELECT/INSERT/UPDATE/DELETE/EXECUTE)。
      • 角色权限(服务器角色与数据库角色,便于批量化授权)。
  • 最佳实践:遵循最小权限原则,优先通过角色授权,谨慎授予 sysadmin 等高危角色。

三 常用操作速查表

目标 T-SQL 示例
创建服务器登录 CREATE LOGIN [LoginName] WITH PASSWORD = ‘StrongP@ssw0rd’;
在数据库创建用户并映射登录 USE [YourDB]; CREATE USER [UserName] FOR LOGIN [LoginName];
授予数据库角色 USE [YourDB]; ALTER ROLE [db_datareader] ADD MEMBER [UserName];
授予对象权限(表/视图) USE [YourDB]; GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.YourTable TO [UserName];
授予存储过程执行权限 USE [YourDB]; GRANT EXECUTE ON dbo.YourProc TO [UserName];
撤销对象权限 USE [YourDB]; REVOKE SELECT ON dbo.YourTable TO [UserName];
从角色移除成员 USE [YourDB]; ALTER ROLE [db_datareader] DROP MEMBER [UserName];
拒绝权限(显式拒绝,优先于 GRANT) USE [YourDB]; DENY SELECT ON dbo.YourTable TO [UserName];
查看当前用户的有效权限 USE [YourDB]; EXEC fn_my_permissions(NULL, ‘USER’);
查看服务器角色成员 SELECT sp.name AS PrincipalName, r.name AS RoleName FROM sys.server_principals sp LEFT JOIN sys.server_role_members rm ON sp.principal_id = rm.member_principal_id LEFT JOIN sys.server_principals r ON rm.role_principal_id = r.principal_id WHERE sp.name = ‘LoginName’;
查看数据库角色成员 USE [YourDB]; EXEC sp_helprolemember ‘db_datareader’;
禁用登录(禁用后无法连接) ALTER LOGIN [LoginName] DISABLE;
删除数据库用户 USE [YourDB]; DROP USER [UserName];
删除服务器登录 DROP LOGIN [LoginName];

四 图形化管理与远程访问

  • 图形化管理:可使用 SQL Server Management Studio(SSMS) 远程连接 Ubuntu 上的 SQL Server 实例,在对象资源管理器中以图形方式管理登录、数据库用户、角色与权限。
  • 远程连接与防火墙:确保 Ubuntu 防火墙放行 1433/TCP(如 sudo ufw allow 1433/tcp),并在 SSMS 中使用服务器IP/主机名与相应端口进行连接。

五 安全与审计建议

  • 强化账户安全:为 SA 与业务登录设置强密码,避免使用默认或弱口令;生产环境谨慎分配 sysadmin,优先采用最小权限基于角色的授权
  • 启用登录审计:在 SSMS 实例属性“安全性”中开启“成功登录和失败登录”审计,便于追踪访问行为。
  • 定期审查:例行核查登录与用户权限分配,清理不再使用的账户与过期授权,降低攻击面。

0