为 Azure SQL 数据库 (PaaS) 创建包含用户时,密码保存在哪里?
例如:
CREATE USER taiobtest WITH password='PVHz3U4A$LNytQF^';
GO
对于服务器登录,我可以从sys.sql_logins:password_hash
列中获取它。
我的用例是从生产备份中刷新非生产。我需要在恢复之前编写出包含用户和所有相关权限的数据库。恢复后清理生产数据库用户/权限并恢复非生产用户和权限。
为 Azure SQL 数据库 (PaaS) 创建包含用户时,密码保存在哪里?
例如:
CREATE USER taiobtest WITH password='PVHz3U4A$LNytQF^';
GO
对于服务器登录,我可以从sys.sql_logins:password_hash
列中获取它。
我的用例是从生产备份中刷新非生产。我需要在恢复之前编写出包含用户和所有相关权限的数据库。恢复后清理生产数据库用户/权限并恢复非生产用户和权限。
正如 Tibor 所指出的,这里的实际答案是“在数据库中”,因此它通过备份/恢复或 AG 故障转移来跟踪数据库。这就是将具有密码的数据库用户添加到部分包含的数据库和 Azure SQL 数据库的原因。
如果您检查
object_definition
,sys.database_principals
您会发现它实际上位于名为 的系统表中sys.sysowners
,存储为散列,只能从专用管理员连接中查询。