Debian环境下 SQL Server 权限管理实操
一 环境准备与连接
sqlcmd -S localhost -U SA -P '<YourStrongPassword>';远程连接示例:sqlcmd -S <服务器IP或主机名> -U <用户名> -P '<密码>' -d master。sudo systemctl restart mssql-server。二 核心概念与最小权限原则
三 常用操作速查
CREATE LOGIN login_name WITH PASSWORD = 'StrongP@ssw0rd';ALTER LOGIN login_name WITH PASSWORD = 'NewP@ssw0rd';ALTER LOGIN login_name DISABLE;DROP LOGIN login_name;USE <db>; CREATE USER user_name FOR LOGIN login_name;DROP USER user_name;EXEC sp_addrolemember 'db_datareader', 'user_name';(同理可加入 db_datawriter、db_owner 等)EXEC sp_droprolemember 'db_datareader', 'user_name';GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::dbo TO user_name;(可按表/视图/过程细化)REVOKE SELECT ON SCHEMA::dbo TO user_name;SELECT * FROM sys.database_permissions WHERE grantee_principal_id = USER_ID('user_name');四 典型场景示例
CREATE LOGIN app_read WITH PASSWORD = 'R3ad0nly!';USE sales; CREATE USER app_read_user FOR LOGIN app_read;EXEC sp_addrolemember 'db_datareader', 'app_read_user';CREATE LOGIN app_rw WITH PASSWORD = 'RwP@ss!';USE sales; CREATE USER app_rw_user FOR LOGIN app_rw;EXEC sp_addrolemember 'db_datareader', 'app_rw_user'; EXEC sp_addrolemember 'db_datawriter', 'app_rw_user';USE sales; GRANT SELECT, INSERT, UPDATE ON dbo.Orders TO app_rw_user;五 常见问题与排查
sudo systemctl status mssql-server)、防火墙放行 1433/TCP,并在配置中启用 TCP/IP 后重启服务。USE <目标库> 执行授权;区分服务器级 LOGIN 与数据库级 USER 是否已正确映射;必要时检查 sys.database_permissions。