SQL Server中登录名和用户的区别
CREATE USER [anc] WITHOUT LOGIN WITH DEFAULT_SCHEMA=[anc]
GO
用户和登录有什么区别。
我不清楚我们是否创建此类用户?
CREATE USER [anc] WITHOUT LOGIN WITH DEFAULT_SCHEMA=[anc]
GO
what is the difference between the user and the login.
i am not clear as to y do we create these kind of users??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
登录名是服务器范围(实例级别)的对象。它们的正确名称是“服务器主体”(请参阅
sys.server_principals
)。服务器范围的权限被授予登录名,例如创建数据库
或查看服务器状态
权限。用户是数据库对象,正确称为“数据库主体”(请参阅
sys.database_principals
)。他们是数据库权限的接收者,例如创建表
或选择
。通常,登录通过匹配的 SID 一对一映射到每个数据库中的用户,但也有一些例外,例如
sysadmin
固定服务器角色的所有成员始终映射到dbo
。未登录的用户是 Service Broker 远程身份的特定构造(请参阅远程服务绑定) 以及代码签名。您永远不必在任何其他上下文中创建一个,如果您这样做,您可能会做错。未登录的用户永远不会被冒充。
Logins are a server wide (instance level) objects. Their correct name is 'server principals' (see
sys.server_principals
). Server wide privileges are granted to logins, likecreate database
orview server state
permissions.Users are a database objects, correctly referred to as 'database principals' (see
sys.database_principals
). They are the recipients of database permissions, likecreate table
orselect
.Ordinarily a login is mapped 1-to-1 to a user in each database, via a matching SID, but there are some exception, like all members of the
sysadmin
fixed server role are always mapped todbo
.Users without login are a specific construct for Service Broker remote identities (see Remote Service Bindings) and for code signing. You should never have to create one in any other context, and if you do, you're likely doing it wrong. Users without login are never meant to be impersonated.
登录名是整个 SQL Server 实例的登录帐户 - 一个实例可以包含多个数据库。
用户在数据库级别定义,并与登录名关联以提供交互式访问(提供权限)。
A login is a login account for the entire SQL Server instance - an instance can contain numerous databases.
A user is defined at the database level, and is associated with a login to provide interactive access (privileges providing).