我有一个Server 2017实例,其中包含5个数据库。A,B,C,D,E数据库A只包含模式和视图。实例上的每个后续数据库(A、B、C、D、E)都有一个模式,每个模式都拥有50-150个视图。我需要给用户对数据库A中所有视图的选择权限,但直接拒绝对所有表的选择权限。SELECT * FROM [B].dbo.ROLE db_viewreader ADD MEMBER tes
多年来,我一直是Server的开发人员,没有问“dbo是什么”这个问题,这是个耻辱。最近,我一直在研究Server 2008的安全模型。很多概念让我不知所措。请为我澄清一些概念,并纠正我的错误。我不需要对所有的事情都做一个彻底的解释,只需要知道什么和所涉及的关系:
LOGIN: Server level (SQL Server login or Windows login).
我有两个数据库,我们称它们为Database1和Database2,用户权限非常有限,我们称之为User1,以及Database1中的存储过程,我们称之为Proc1。我授予EXECUTE User1 on Proc1的权限,只要所有引用的表(用于选择、更新.等)在Database1中,尽管User1对这些表没有显式权限。我修改了Proc1以从表中进行选择,让我们将其称为Database2中的Table1。将处理所需<