CentOS环境下 SQL Server 权限管理实践
一 身份与授权模型
二 环境与安全基线
sudo firewall-cmd --zone public --add-port 1433/tcp --permanent && sudo firewall-cmd --reload。三 权限分配与回收实操
-- 服务器级登录
CREATE LOGIN app_read WITH PASSWORD = 'StrongP@ssw0rd!';
-- 在目标数据库创建用户并映射
USE SalesDB;
CREATE USER app_read_user FOR LOGIN app_read;
-- 只读权限
EXEC sp_addrolemember 'db_datareader', 'app_read_user';
-- 对特定表授予写入(按需)
GRANT INSERT, UPDATE, DELETE ON dbo.Orders TO app_read_user;
USE SalesDB;
CREATE USER app_write_user FOR LOGIN app_write;
EXEC sp_addrolemember 'db_datawriter', 'app_write_user';
CREATE LOGIN dba_admin WITH PASSWORD = 'VeryStr0ng!';
EXEC sp_addsrvrolemember 'dba_admin', 'sysadmin';
REVOKE DELETE ON dbo.Orders FROM app_read_user;EXEC sp_droprolemember 'db_datareader', 'app_read_user';SELECT * FROM fn_my_permissions(NULL, 'USER');SELECT USER_NAME(grantee_principal_id) AS UserName, permission_name, class_desc, major_id FROM sys.database_permissions WHERE grantee_principal_id = USER_ID('app_read_user');四 审计与合规
五 常见排错与运维要点
sqlcmd -S <host> -U <login> -P <pwd> -d <db> -Q "SELECT 1"。chown mssql:mssql /var/opt/mssql/data; chmod 770 /var/opt/mssql/data,避免因权限不足导致数据库启动或写入失败。