Azure:如何将Azure SQL登录账号映射到指定数据库?
Azure SQL 服务器登录账号映射到指定数据库的操作步骤
前置确认
- 待映射的登录账号为逻辑服务器级主体,即存在于
master系统库的登录清单中,不是某单库下的独立用户 - 执行操作使用的账号(SSMS连接账号、Portal登录账号)需具备服务器管理员权限,或目标数据库内的
db_securityadmin权限、ALTER ANY USER权限 - 两个待映射的数据库均属于当前已接入的同一台Azure SQL逻辑服务器,无跨实例关联需求
方式1:通过已连接的SSMS操作
SSMS连接完成后优先用这个方式,所有创建用户、分配权限的语句必须在目标用户数据库的上下文执行,禁止直接在master库运行:
- 在SSMS对象资源管理器中展开当前服务器节点,找到第一个待映射的目标数据库,右键选择「新建查询」,打开绑定该数据库的查询窗口
- 执行关联登录的建用户语句,替换为实际的登录名称:
CREATE USER [你的服务器登录账号名] FROM LOGIN [你的服务器登录账号名]; - 根据业务需求分配对应角色权限,常用配置参考:
-- 分配全库管理权限 ALTER ROLE db_owner ADD MEMBER [你的服务器登录账号名]; -- 仅分配只读权限 ALTER ROLE db_datareader ADD MEMBER [你的服务器登录账号名]; - 切换到第二个待映射的目标数据库,重复上述建用户、分配权限的流程。Azure SQL 无跨库自动映射机制,不会为服务器登录在所有用户库同步生成对应数据库用户,每个库需单独配置。
方式2:通过Azure Portal操作
具备Portal访问权限时可直接在线完成,无需依赖SSMS连接:
- 打开对应Azure SQL逻辑服务器的门户页面,在SQL数据库列表中找到第一个待映射的库,进入详情页
- 在左侧导航栏选择「查询编辑器」,用具备操作权限的账号完成身份验证,打开在线查询面板
- 在面板中依次执行和SSMS流程完全一致的建用户、权限分配SQL语句
- 返回数据库列表,对第二个目标库重复上述查询操作即可
常见报错排查
- 执行
CREATE USER提示找不到登录名:核对输入的登录名与master库中存储的服务器登录名是否完全匹配,注意大小写校验规则 - 执行SQL提示权限不足:确认当前操作账号是否具备目标库的用户创建权限,或服务器层面的管理员权限
内容的提问来源于stack exchange,提问作者tomsmithweb
相关产品推荐
相关产品推荐

