温馨提示×

ubuntu sqlserver如何设权限

小樊
50
2026-10-03 20:34:03
栏目: 云计算

在 Ubuntu 上运行的 SQL Server(Microsoft SQL Server on Linux) 中,“设权限”一般分几个层面来看,下面按常见场景给你讲清楚。


一、登录权限(Login)

1. 使用 SA 登录

sqlcmd -S localhost -U SA -P '你的SAPassword'

2. 创建 SQL 登录账号

CREATE LOGIN testuser WITH PASSWORD = 'StrongPass@123';

3. 禁用 / 启用登录

ALTER LOGIN testuser DISABLE;
ALTER LOGIN testuser ENABLE;

二、数据库用户权限(User)

1. 创建数据库用户

USE YourDB;
CREATE USER testuser FOR LOGIN testuser;

2. 赋予数据库角色(常用)

-- 只读
ALTER ROLE db_datareader ADD MEMBER testuser;

-- 只写
ALTER ROLE db_datawriter ADD MEMBER testuser;

-- 数据库管理员
ALTER ROLE db_owner ADD MEMBER testuser;

三、表 / 视图级别权限

1. 授予权限

USE YourDB;

GRANT SELECT ON dbo.Orders TO testuser;
GRANT INSERT, UPDATE ON dbo.Orders TO testuser;

2. 收回权限

REVOKE SELECT ON dbo.Orders TO testuser;

3. 拒绝权限(优先级最高)

DENY DELETE ON dbo.Orders TO testuser;

四、Ubuntu 系统层面(不是 SQL 权限,但常混淆)

1. SQL Server 服务账户

SQL Server 在 Ubuntu 上通常以 mssql 用户运行:

ps aux | grep sqlservr

不要随意改系统权限,否则服务可能起不来。

2. 端口与防火墙

sudo ufw allow 1433/tcp

五、Windows 认证(Ubuntu 不支持)

⚠️ Linux 版 SQL Server 不支持 Windows 身份验证
只能使用:

  • SQL 登录账号
  • 或 AD 认证(需额外配置,较复杂)

六、常见权限组合示例

只读账号

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;

如果你能告诉我:

  • 是 系统权限 / 数据库权限 / 表权限
  • 是 给程序用还是给人用
  • 是否需要 只读 / 只写 / 管理员

我可以给你一套更精确的权限方案。

0 踩