创建 SQL Server 2005 用户登录以在单个数据库上备份和还原

创建 SQL Server 2005 用户登录以在单个数据库上备份和还原

我有一台 SQL Server 2005 数据库服务器,服务器上有多个数据库。我需要创建一个用户登录“test1”,并具有以下限制:

  1. 登录名“test1”应该只是数据库“ABC”的所有者,而不是服务器上其他数据库的所有者。

  2. 登录“test1”不应有权访问服务器上的任何其他数据库。

  3. 登录名“test1”应该只能备份(数据和日志文件)和恢复数据库“ABC”。登录名“test1”不应被允许备份或恢复服务器上的任何其他数据库。

我创建了一个名为 test1 的登录名并打开属性窗口。在服务器角色下,选中 public,在用户映射下,选中数据库 ABC,默认架构为 db_owner。使用 t-sql 脚本,我成功备份和恢复了 ABC 数据库。 当我尝试使用另一个备份数据库恢复另一个数据库时,尽管我无法访问另一个数据库,但我还是成功了

关于如何解决这个问题有什么想法吗?

如何创建并设置此用户登录的正确权限?我需要创建自定义 T-SQL 脚本吗?还是可以使用 GUI 界面来完成?

答案1

登录信息用于服务器级别,而用户信息用于数据库级别。您可以在此处阅读相关内容https://stackoverflow.com/questions/5247404/sql-server-server-login-vs-database-login

您可以在 Management Studio 或 t-sql 中执行此操作。在对象资源管理器中,转到“安全”->“登录名”右键单击->“新建登录名”。创建登录名 test1 后,右键单击数据库 ABC ->“属性”->“文件”页面,选择所有者 test1。

登录 test1 将无法访问其他数据库,除非您在这些数据库中为其创建用户。

相关内容