当前位置: 首页 > 面试题库 >

SQL Server-授予对所有现有数据库和将来数据库的读取访问权限的登录权限

马飞
2023-03-14
问题内容

我有一个存储过程,该过程可以找到所有现有数据库并从每个数据库的表中读取数据。

有没有一种方法可以使我对所有数据库以及将来的所有数据库都具有登录读取访问权限,即在添加新数据库时我无需执行任何操作?

有服务器角色可以工作吗?有没有一种方法可以使SQL代理作业在任何新数据库上添加权限?还是有其他方法?


问题答案:

对于新数据库,将用户添加到模型数据库中。这用作所有新数据库的模板。

USE model
CREATE USER ... FROM LOGIN...
EXEC sp_addrolemember 'db_datareader', '...'

对于现有数据库,请使用sp_MSForEachDb

EXEC sp_MSForEachDb '
 USE ?
 CREATE USER ... FROM LOGIN...  
 EXEC sp_addrolemember ''db_datareader'', ''...''
'


 类似资料:
  • 问题内容: 我需要授予对服务器上所有300个数据库的新登录读取访问权限。如何在不选中用户映射区域中的300个复选框的情况下完成此任务? 问题答案: 一种方法是在SSMS的查询菜单上设置“结果为文本”,然后执行以下操作。 它实际上并没有进行更改,而是生成了一个脚本供您查看和执行。 或者,你可以看看 这里或亚伦Bertrand的改进版本在这里 如果运行此命令时未看到所有字符,请打开“文本查询选项”,然

  • 问题内容: 我已经创建了数据库,例如’mydb’。 现在,我可以从任何地方登录数据库,但是无法创建表。 如何授予该数据库和(将来)表的所有特权。我无法在“ mydb”数据库中创建表。我总是得到: 问题答案: 这就是我创建“超级用户”特权的方式(尽管我通常会指定一个主机)。 虽然此答案可以解决访问问题,但可以创建一个MySQL用户,该用户可以编辑其他用户的权限。 使用GRANT OPTION特权,您

  • 我想在不使其成为管理员的情况下授予用户数据库的所有权限。我想这样做的原因是目前DEV和PROD是同一集群上的不同DBs,因此我不希望用户能够更改生产对象,但它必须能够更改DEV上的对象。 我尝试了: 但它似乎没有给予任何许可。 然后我尝试: 它似乎允许我创建对象,但不允许我在属于其他用户的模式上查询\delete对象 我可以继续通过给予用户USAGE权限MY_SCHEMA但它会抱怨没有在表上的权限

  • 我有一个用户测试。我想授予此用户在所有数据库上的所有权限。怎样才能做到呢?

  • 如有任何帮助,我们将不胜感激。

  • 在web应用程序(基于laravel 5.3的mysql)中,有三个主要模型:、和和许多其他模型(、等)有管理器(另一个在顶层)。 属于。部门组成等级制度。用户有一些角色,例如,允许他查看他的部门和他的部门下面的所有部门的任务。 例如,零级部门的用户可以看到系统中的所有任务。