Ubuntu上管理 SQL Server 用户权限的实用指南
一 环境准备与连接
二 核心概念与最小权限原则
三 常用操作速查表
| 目标 | 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]; |
四 图形化管理与远程访问
五 安全与审计建议