Linux SQL Server如何管理用户权限
导读:Linux 上的 SQL Server 用户权限管理 一 核心概念与准备 在 SQL Server 中,**登录名(Login)**是服务器级主体,用于连接到实例;**数据库用户(User)**是数据库级主体,必须在使用它的每个数据库中单...
Linux 上的 SQL Server 用户权限管理
一 核心概念与准备
- 在 SQL Server 中,**登录名(Login)**是服务器级主体,用于连接到实例;**数据库用户(User)**是数据库级主体,必须在使用它的每个数据库中单独创建并与登录名映射。
- 连接工具建议使用 sqlcmd(Linux 上可直接安装并使用),以 SA 或具备相应权限的账户登录执行管理操作。
- 密码策略默认要求:至少 8 个字符,且包含大小写字母、数字、符号中至少 3 种,最长 128 个字符。
二 常用管理任务与 T‑SQL 示例
-
创建登录名与数据库用户
-- 服务器级:创建登录名 CREATE LOGIN alice WITH PASSWORD = '< StrongPassword> '; -- 切换到目标数据库并创建相应用户(与登录名同名映射) USE SalesDB; CREATE USER alice FOR LOGIN alice; -
授予固定数据库角色
USE SalesDB; -- 只读 EXEC sp_addrolemember 'db_datareader', 'alice'; -- 读写(不含结构变更) EXEC sp_addrolemember 'db_datawriter', 'alice'; -- 谨慎授予:库级完全控制 -- EXEC sp_addrolemember 'db_owner', 'alice'; -
授予对象级精细权限
USE SalesDB; GRANT SELECT, INSERT, UPDATE, DELETE ON OBJECT::dbo.Orders TO alice; -- 如需更细粒度,可只授予到列 -- GRANT SELECT ON OBJECT::dbo.Orders(OrderID, CustomerID) TO alice; -
创建自定义数据库角色并授权
USE SalesDB; CREATE ROLE SalesReadOnly; GRANT SELECT ON SCHEMA::dbo TO SalesReadOnly; ALTER ROLE SalesReadOnly ADD MEMBER alice; -
撤销与拒绝(按需使用)
-- 撤销某权限 REVOKE SELECT ON OBJECT::dbo.Orders FROM alice; -- 显式拒绝(优先级高于 GRANT) DENY DELETE ON OBJECT::dbo.Orders TO alice; -
查看与验证
-- 查看数据库主体与权限 USE SalesDB; SELECT * FROM sys.database_principals WHERE name = 'alice'; SELECT * FROM sys.database_permissions WHERE grantee_principal_id = USER_ID('alice');以上流程同样适用于 Ubuntu/Debian 等 Linux 发行版,仅工具安装命令有所差异。
三 进阶访问控制
-
行级安全性(RLS):按行限制可见数据,常用于“客户只能看自己的数据、员工只看本部门数据”。示例要点:创建内联表值函数作为谓词,再创建安全策略绑定到表,并可选择启用/禁用策略。
-
动态数据掩码(DDM):对敏感列做部分掩蔽(如邮箱保留域名),对应用透明,常用于脱敏展示。
-
实践建议:优先采用“最小权限原则”,先授予固定或自定义角色,再按对象/列细化;对复杂业务可按部门或场景建立自定义角色,便于批量授权与审计。
四 常用连接与排错命令
- 安装命令行工具(Ubuntu/Debian)
sudo apt-get update sudo apt-get install -y mssql-tools unixodbc-dev - 连接数据库
sqlcmd -S localhost -U SA -P '< YourPassword> ' - 常见排错
- 登录失败:确认实例监听端口(默认 1433)、防火墙与 SA 密码策略。
- 对象不存在或无权限:确认当前数据库上下文(USE DB)、用户是否已在该库创建并与登录名映射、是否授予了相应权限。
- 角色未生效:检查是否对正确的数据库执行、是否使用了正确的用户名(区分大小写/架构限定)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux SQL Server如何管理用户权限
本文地址: https://pptw.com/jishu/765892.html
