首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在刷新数据库后保存并还原权限

如何在刷新数据库后保存并还原权限
EN

Database Administration用户
提问于 2014-11-24 14:19:59
回答 1查看 13.9K关注 0票数 3

暂存环境中的数据库每N周用最近的生产副本覆盖一次。

保存和恢复用户、角色和显式授予权限的正确方法是什么,就像现有数据库被生产副本覆盖之前一样?

我不想恢复用户和权限,因为他们在生产中,但他们是在DEV环境中,数据库被覆盖。

这个刷新过程必须是自动化的,因为有许多不同的环境,有几十个实例可能承载多达10个数据库。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2014-11-24 15:59:00

@阿龙·伯特兰是对的。您应该考虑另一种刷新暂存环境的方法。如果没有其他原因,您在生产中拥有的任何敏感数据现在都可供一组新用户使用,这些用户可能没有在生产中受到严格的限制。然而,我意识到更改流程可能需要时间(如果管理层甚至批准时间的话)。

本质上,您希望创建一个脚本,该脚本将删除prod数据库副本中的所有现有权限,并创建另一个脚本,该脚本将生成以前存在的所有权限。我个人的偏好是使用像服务提供商_dbpermissions这样的脚本。在生产环境上运行它,然后将drop脚本列(第二列到最后一列)复制到.sql文件中并保存它。当然,要非常小心,不要在生产中运行。

代码语言:javascript
运行
复制
EXEC sp_dbpermissions 'dbName'

您只需要从第一个结果集中的第二列到最后一列。

接下来,在暂存数据库上运行相同的脚本。这一次,您将希望从三个结果集中的每一个复制最后一列。这将为您提供CREATE、sp_AddRoleMember和GRANT/DENY命令来添加此数据库的权限。再次将它们保存在.sql文件中。还原之后,继续运行第一个脚本(删除旧权限),然后运行第二个脚本(添加新的)。

我还强烈建议在覆盖暂存数据库之前备份它。这样,如果出现问题,您可以始终将其还原回(即使是另一个位置),并确认任何缺少的权限。

票数 5
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/83481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档