首页主机资讯Linux SQL Server如何管理用户权限

Linux SQL Server如何管理用户权限

时间2025-12-08 13:42:03发布访客分类主机资讯浏览319
导读: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
Linux SQL Server如何实现高可用 Linux SQL Server怎样优化查询

游客 回复需填写必要信息