首页主机资讯CentOS下SQL Server的权限管理怎么做

CentOS下SQL Server的权限管理怎么做

时间2025-12-04 13:03:04发布访客分类主机资讯浏览768
导读:CentOS下SQL Server权限管理实操指南 一 管理思路与分层 在 Linux(CentOS) 上,SQL Server 的权限管理与操作系统无关,核心仍遵循 SQL 标准的 主体-安全对象-权限 模型:先创建 登录名(Login...

CentOS下SQL Server权限管理实操指南

一 管理思路与分层

  • Linux(CentOS) 上,SQL Server 的权限管理与操作系统无关,核心仍遵循 SQL 标准的 主体-安全对象-权限 模型:先创建 登录名(Login),再在目标库内创建 数据库用户(User) 并映射到该登录名,随后通过 对象级权限、数据库角色、架构级权限 进行最小化授权。必要时结合 Windows 身份验证(AD)SQL Server 身份验证TLS 加密连接 提升安全性。

二 快速上手 SQL 命令示例

  • 登录到 SQL Server(示例端口 1433,本机可用 sqlcmd 或 SSMS):
    • sqlcmd -S localhost,1433 -U sa -P ‘’
  • 创建登录名与数据库用户,并授予权限(最小权限示例):
    -- 1) 创建 SQL 登录名
    CREATE LOGIN AppUser WITH PASSWORD = 'YourStrongP@ssw0rd!';
        
    
    -- 2) 在目标数据库创建用户并映射
    USE SalesDB;
        
    CREATE USER AppUser FOR LOGIN AppUser;
        
    
    -- 3) 对象级:仅授予对 dbo.Products 的增改查
    GRANT SELECT, INSERT, UPDATE ON dbo.Products TO AppUser;
        
    
    -- 4) 存储过程执行权限
    GRANT EXECUTE ON dbo.usp_SubmitOrder TO AppUser;
        
    
    -- 5) 架构级:只读整个 dbo 架构
    GRANT SELECT ON SCHEMA::dbo TO AppUser;
        
    
    -- 6) 数据库级:只读角色(谨慎使用)
    EXEC sp_addrolemember 'db_datareader', 'AppUser';
        
    
    -- 7) 撤销示例
    DENY DELETE ON dbo.Products TO AppUser;
        
    
  • 使用内置数据库角色简化管理(按需选用):
    • 只读:db_datareader
    • 读写数据:db_datawriter
    • 完全控制:db_owner(仅限受控场景)
  • 如需使用 Windows 身份验证(域环境),可创建 Windows 登录名并映射到数据库用户:
    CREATE LOGIN [DOMAIN\DevGroup] FROM WINDOWS;
        
    USE SalesDB;
        
    CREATE USER DevUser FOR LOGIN [DOMAIN\DevGroup];
        
    EXEC sp_addrolemember 'db_datareader', 'DevUser';
        
    
  • 验证权限(以 AppUser 身份连接后执行):
    SELECT 1;
        
    SELECT TOP 10 * FROM dbo.Products;
        
    EXEC dbo.usp_SubmitOrder @OrderId = 1001;
        
    

以上命令覆盖了登录名/用户创建、对象/架构/数据库级授权与撤销、以及内置角色的常用做法。

三 角色与权限设计建议

  • 遵循 最小权限原则:只授予完成业务所需的最小权限,避免直接使用 db_owner
  • 优先使用 数据库角色架构级授权 进行批量、可维护的授权管理,减少逐对象授权的维护成本。
  • 按业务划分 自定义角色(如 ReportReader、OrderWriter),将用户加入角色以统一权限边界。
  • 对敏感数据列使用 Always Encrypted,对数据库文件使用 TDE 实现静态加密,降低数据泄露风险。

四 系统层面安全与网络访问控制

  • 仅开放必要端口(默认 1433/TCP),使用 firewalld 精细化放行:
    sudo firewall-cmd --permanent --add-port=1433/tcp
    sudo firewall-cmd --reload
    
  • 启用 TLS/加密连接,确保客户端与服务端之间的传输安全;对外最小化暴露,必要时通过跳板机或内网隔离访问。
  • 定期 更新 SQL Server 与系统补丁,并启用 审计与日志监控,对异常登录与权限变更进行告警与追溯。

五 常见排错与运维要点

  • 登录失败或权限不足时,优先检查:登录名是否存在、是否映射到目标库的用户、是否授予了对应对象/架构/角色权限。
  • 使用 SSMS 或 sqlcmd 验证:以目标账号连接后执行受限操作(如 SELECT/EXEC),确认报错与预期一致。
  • 若应用报“拒绝访问”,检查是否为对象级 DENY 或上层 角色 权限覆盖了授予的权限。
  • 涉及备份/还原等运维操作,确保账号具备相应数据库级权限(如 BACKUP DATABASE/LOG),并遵循变更流程与审计记录。

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


若转载请注明出处: CentOS下SQL Server的权限管理怎么做
本文地址: https://pptw.com/jishu/763455.html
SQL Server在CentOS中的日志记录如何设置 CentOS中SQL Server更新步骤有哪些

游客 回复需填写必要信息