SQL Server以Windows身份验证模式登陆时,如何添加非administrator账号的其他用户有操作SQL Server的权限?
|
admin
2025年11月25日 18:7
本文热度 947
|
在 SQL Server 的 Windows 身份验证模式下,为 Windows 系统账号(如 likai)添加访问和操作权限,需通过 SQL Server Management Studio (SSMS) 或 T-SQL 命令实现。以下是详细步骤:
🔑 一、创建 Windows 登录名(Login)
首先,将 Windows 账号映射为 SQL Server 的登录名,使其能连接服务器。
方法 1:通过 SSMS 图形界面
- 打开 SSMS → 连接至目标 SQL Server 实例。
- 展开 “安全性” → 右键 “登录名” → “新建登录名” 。
- 在 “常规” 选项卡:
- 选择 “Windows 身份验证” 。
- 点击 “搜索” → 输入 Windows 账号名(如
DOMAIN\likai 或 计算机名\likai)→ 确认137。
- 在 “用户映射” 选项卡:
特别说明:不要直接在SQL Server中创建同名账号,必须通过以上方式挑选Windows系统中的现有此账号名称!
方法 2:通过 T-SQL 命令
USE master;
CREATE LOGIN [DOMAIN\likai] FROM WINDOWS; -- 替换 DOMAIN 为实际域名或计算机名
GO
🗂️ 二、在目标数据库创建用户(User)并分配权限
登录名仅允许连接服务器,需在具体数据库中创建用户并授权。
步骤:
- 创建数据库用户(若未自动生成):
USE YourDatabase;
CREATE USER [likai] FOR LOGIN [DOMAIN\likai];
GO
- 分配权限:
- 方案 1:加入数据库角色(推荐)
固定角色如 db_datareader(查询)、db_datawriter(增删改)、db_owner(完全控制):EXEC sp_addrolemember 'db_datareader', 'likai';
EXEC sp_addrolemember 'db_datawriter', 'likai';
- 方案 2:直接授予对象级权限
例如授权查询 Sales 表:GRANT SELECT ON dbo.Sales TO likai;
⚙️ 三、验证权限
- 使用 Windows 账号
likai 登录操作系统。 - 打开 SSMS → 选择 “Windows 身份验证” → 连接 SQL Server。
- 尝试执行操作(如查询表数据),确认权限生效78。
🔍 权限管理最佳实践
- 最小权限原则:避免直接赋予
db_owner 或 sysadmin 等高权限角色,按需分配27。 - 使用角色管理:创建自定义数据库角色(如
audit_role),统一授权后添加用户,简化维护25。CREATE ROLE audit_role;
GRANT SELECT, INSERT ON dbo.AuditLog TO audit_role;
EXEC sp_addrolemember 'audit_role', 'likai';
- 定期审计权限:通过系统视图(如
sys.database_permissions)检查权限分配25。
❗ 常见问题
- 登录名已存在但无法访问数据库:检查是否在目标数据库创建了用户,并分配了权限58。
- 权限不生效:确认登录名与数据库用户的映射关系正确(通过
sys.database_principals 视图验证)5。
通过以上步骤,Windows 账号 likai 即可安全访问并操作 SQL Server,无需提升至管理员权限。
该文章在 2025/11/25 18:43:28 编辑过