S W*_*S W 2 schema sql-server stored-procedures users sql-server-2016
如主题中所述,当与我一起工作的开发人员创建存储过程时,正在创建新用户和架构。最初我为该开发人员分别创建了一个用户和登录名,但后来都删除了。但是,每当他们运行脚本来创建 SP 时,都会重新创建以他们的 Active Directory 名称命名的用户和架构,并将 SP 放置在该“新”架构中。
即使我删除了 SP、用户和架构,如果他们再次创建 SP,用户和架构也会回来。
有没有人对此有任何见解?
此行为在CREATE SCHEMA文档的“备注”部分中,在“隐式架构和用户创建”下(添加强调以突出您遇到的情况)中注明:
在某些情况下,用户可以在没有数据库用户帐户(数据库中的数据库主体)的情况下使用数据库。这可能发生在以下情况:
登录具有 CONTROL SERVER 权限。
Windows 用户没有单独的数据库用户帐户(数据库中的数据库主体),但作为具有数据库用户帐户(Windows 组的数据库主体)的 Windows 组的成员访问数据库。
当没有数据库用户帐户的用户在未指定现有架构的情况下创建对象时,将在数据库中为该用户自动创建数据库主体和默认架构。创建的数据库主体和架构将与用户在连接到 SQL Server 时使用的名称(SQL Server 身份验证登录名或 Windows 用户名)同名。
此行为是允许基于 Windows 组的用户创建和拥有对象所必需的。然而,它可能导致模式和用户的无意创建。为避免隐式创建用户和架构,请尽可能显式创建数据库主体并分配默认架构。或者在数据库中创建对象时使用两部分或三部分的对象名称显式声明现有模式。
归档时间: |
|
查看次数: |
67 次 |
最近记录: |