ubuntu

在Ubuntu上如何管理SQL Server用户权限

小樊
37
2025-09-27 01:37:20
栏目: 云计算

在Ubuntu上管理SQL Server用户权限的步骤

1. 准备工作:安装SQL Server及命令行工具

在Ubuntu上管理SQL Server权限前,需先安装SQL Server实例及命令行工具mssql-tools(包含sqlcmd,用于执行T-SQL命令)。

2. 连接到SQL Server实例

使用sqlcmd工具以系统管理员(SA)身份登录SQL Server:

sqlcmd -S localhost -U SA -P 'YourStrongPassword'

其中,YourStrongPassword为安装时设置的SA账户密码。

3. 创建服务器登录名(服务器级身份验证)

登录名用于验证用户访问SQL Server实例的身份,需在master数据库中创建:

USE master;
CREATE LOGIN [YourLoginName] WITH PASSWORD = 'YourComplexPassword';
GO

4. 创建数据库用户并映射到登录名

数据库用户是登录名在特定数据库中的映射,需在目标数据库中创建:

USE YourDatabaseName; -- 切换至目标数据库(如`SalesDB`)
CREATE USER [YourUserName] FOR LOGIN [YourLoginName];
GO

5. 分配数据库角色(简化权限管理)

SQL Server提供预定义数据库角色,可快速分配常用权限集合:

USE YourDatabaseName;
-- 分配只读权限(SELECT)
ALTER ROLE db_datareader ADD MEMBER [YourUserName];
-- 分配读写权限(SELECT、INSERT、UPDATE、DELETE)
ALTER ROLE db_datawriter ADD MEMBER [YourUserName];
-- 分配数据库所有者权限(所有操作,谨慎使用)
ALTER ROLE db_owner ADD MEMBER [YourUserName];
GO

6. 授予特定对象权限(精细化控制)

若需为用户分配特定表或存储过程的权限,可使用GRANT语句:

USE YourDatabaseName;
-- 授予对特定表的SELECT权限
GRANT SELECT ON dbo.Customers TO [YourUserName];
-- 授予对特定表的INSERT、UPDATE、DELETE权限
GRANT INSERT, UPDATE, DELETE ON dbo.Orders TO [YourUserName];
-- 授予对特定存储过程的执行权限
GRANT EXECUTE ON dbo.GetCustomerData TO [YourUserName];
GO

7. 验证权限设置

可通过以下方式验证用户权限:

权限管理最佳实践

0
看了该问题的人还看了