在 Debian 上安装并运行 SQL Server(Microsoft SQL Server on Linux) 后,授权(权限管理)的方式和 Windows / 其他 Linux 平台是一致的,主要通过 T-SQL 来进行。
下面按常见场景说明。
sqlcmd -S localhost -U SA
或指定端口:
sqlcmd -S localhost,1433 -U SA
CREATE LOGIN testuser WITH PASSWORD = 'Strong@123';
-- 授予 sysadmin(管理员,谨慎)
ALTER SERVER ROLE sysadmin ADD MEMBER testuser;
或只给基本连接权限:
GRANT CONNECT SQL TO testuser;
USE mydb;
GO
CREATE USER testuser FOR LOGIN testuser;
ALTER ROLE db_datareader ADD MEMBER testuser;
ALTER ROLE db_datawriter ADD MEMBER testuser;
常用角色:
db_owner:数据库最高权限db_datareader:只读db_datawriter:只写db_ddladmin:建表改结构GRANT SELECT ON dbo.orders TO testuser;
GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.orders TO testuser;
GRANT EXECUTE ON dbo.usp_getdata TO testuser;
✅ 不需要 chmod / chown 来授权 SQL 用户
✅ SQL Server 权限全部在数据库内部用 T-SQL 管理
✅ Debian 上只有 mssql 系统用户用于运行服务
查看服务状态:
systemctl status mssql-server
sudo /opt/mssql/bin/mssql-conf set-sa-password
sudo systemctl restart mssql-server
-- 允许登录
ALTER LOGIN testuser ENABLE;
并确认:
CREATE LOGIN appuser WITH PASSWORD = 'App@123';
USE mydb;
CREATE USER appuser FOR LOGIN appuser;
ALTER ROLE db_datareader ADD MEMBER appuser;
ALTER ROLE db_datawriter ADD MEMBER appuser;
如果你有具体需求(比如:只读账号、只能访问某个库、只能执行存储过程、AD 集成、Docker 中 SQL Server),可以告诉我,我可以给你针对性授权方案。