我在家里有一个 SQL Server 2008 R2 Express Edition 实例,在客户端的服务器上有另一个实例,我用它来开发使用 Access 作为前端的应用程序。这个应用程序有 5 个单独的登录名,我可以在连接字符串中使用它们(基于用户所在的访问组)。home 实例有几个数据库——其中一些与这个应用程序无关
随着时间的推移,我已经在每个实例中手动创建了登录名(并且可能以不同的顺序)。
我希望能够(不止一次)从我正在处理的数据库的家用机器上进行备份,并使用恢复将其加载到客户端的实例上,只需将备份集中的文件移动到实际还原过程中此服务器上使用的文件。我不明白的部分是数据库用户和登录名之间的映射。
我原以为名称的对应关系应该足够了,但是在尝试解决还原数据库的用户似乎没有映射到服务器登录名的问题时,我遇到了 Transact-SQL ALTER USER 语句,特别是它对使用 WITH LOGIN 的引用以及有关“SID”的一些讨论。
由于(我假设)服务器登录名称在每个实例中都有不同的 SID,这是否意味着在我加载实例之间的备份后,我必须使用一系列 ALTER USER WITH LOGIN 命令重新连接映射?
我正在 SQL Server Management Studio 中针对我的 SQL Server 2008 R2 Express Edition 实例。我试图了解权限是如何工作的。
我能看到的是(通过许多这些实体的属性)
然而,在那一点上,小路变冷了。架构 db_datawriter 在其属性下有一个空白的权限页面。
什么精确定义了架构 db_datawriter 的权限是什么?