在 Ubuntu 上运行的 SQL Server(Microsoft SQL Server on Linux) 中,“设权限”一般分几个层面来看,下面按常见场景给你讲清楚。
sqlcmd -S localhost -U SA -P '你的SAPassword'
CREATE LOGIN testuser WITH PASSWORD = 'StrongPass@123';
ALTER LOGIN testuser DISABLE;
ALTER LOGIN testuser ENABLE;
USE YourDB;
CREATE USER testuser FOR LOGIN testuser;
-- 只读
ALTER ROLE db_datareader ADD MEMBER testuser;
-- 只写
ALTER ROLE db_datawriter ADD MEMBER testuser;
-- 数据库管理员
ALTER ROLE db_owner ADD MEMBER testuser;
USE YourDB;
GRANT SELECT ON dbo.Orders TO testuser;
GRANT INSERT, UPDATE ON dbo.Orders TO testuser;
REVOKE SELECT ON dbo.Orders TO testuser;
DENY DELETE ON dbo.Orders TO testuser;
SQL Server 在 Ubuntu 上通常以 mssql 用户运行:
ps aux | grep sqlservr
不要随意改系统权限,否则服务可能起不来。
sudo ufw allow 1433/tcp
⚠️ Linux 版 SQL Server 不支持 Windows 身份验证
只能使用:
CREATE LOGIN readonlyuser WITH PASSWORD = 'Pass@123';
USE YourDB;
CREATE USER readonlyuser FOR LOGIN readonlyuser;
ALTER ROLE db_datareader ADD MEMBER readonlyuser;
GRANT INSERT ON dbo.Log TO appuser;
如果你能告诉我:
我可以给你一套更精确的权限方案。