Sql server 2012 如何在SQL Server 2012中更新数据库用户密码

Sql server 2012 如何在SQL Server 2012中更新数据库用户密码,sql-server-2012,Sql Server 2012,我需要更新SQL Server 2012中数据库安全文件夹中一个用户的密码。不幸的是,我们内部没有DBA,因此需要一些帮助。我被告知我拥有此SQL Server的系统管理员权限,但在数据库中找不到更新用户密码的位置。当我在谷歌上搜索时,msdn向我展示了如何更新SQL Server 2012框中的登录名,但该用户未列在该服务器的Security\Logins文件夹下,但该用户仅列在database\Security\Users文件夹下 我尝试了用PASSWORD='PASSWORD'更改登录用户

我需要更新SQL Server 2012中数据库安全文件夹中一个用户的密码。不幸的是,我们内部没有DBA,因此需要一些帮助。我被告知我拥有此SQL Server的系统管理员权限,但在数据库中找不到更新用户密码的位置。当我在谷歌上搜索时,msdn向我展示了如何更新SQL Server 2012框中的登录名,但该用户未列在该服务器的Security\Logins文件夹下,但该用户仅列在database\Security\Users文件夹下

我尝试了
用PASSWORD='PASSWORD'更改登录用户名命令,但我只收到以下错误:

Msg 15151,16级,状态1,第2行

无法更改登录名“ATM”,因为它不存在或您没有权限


任何帮助/指导都将不胜感激。谢谢。

这就是和之间的区别以及它们之间的关系:

  • 登录-允许实体连接到SQL Server实例的实例级主体。就其性质而言,它们不授予对实例上数据库的任何访问权限。例外情况是,具有系统管理员权限的登录可以使用数据库,因为它们是系统管理员,但具有系统管理员级别的权限
  • 用户—允许实体连接到SQL Server数据库的数据库级主体。用户通过SID与登录关联,在两者之间创建关系,并允许登录连接到实例,然后使用关联的用户连接到数据库
SQL身份验证登录名和数据库用户在还原时通常发生的情况是,SID将不同步,或者数据库中的用户将不存在登录名,从而破坏关系。必须先修复此关系,然后才能使用该登录连接到数据库,因为在SQL Server看来,这些主体已不再连接。如果登录名不存在,您必须首先将其与用户关联:

--Windows login (Active Directory pass through)
CREATE LOGIN [DOMAIN\foo] FROM WINDOWS;

--SQL Authenticated 
CREATE LOGIN [foo] WITH PASSWORD='5+r0ngP@55w0rd';
ALTER USER [foo] WITH LOGIN=[foo]
登录名存在后,将其与用户关联:

--Windows login (Active Directory pass through)
CREATE LOGIN [DOMAIN\foo] FROM WINDOWS;

--SQL Authenticated 
CREATE LOGIN [foo] WITH PASSWORD='5+r0ngP@55w0rd';
ALTER USER [foo] WITH LOGIN=[foo]
您可以在数据库上下文中使用以下查询来检查孤立项:

select
    dp.name [user_name]
    ,dp.type_desc [user_type]
    ,isnull(sp.name,'Orhphaned!') [login_name]
    ,sp.type_desc [login_type]
from   
    sys.database_principals dp
    left join sys.server_principals sp on (dp.sid = sp.sid)
where
    dp.type in ('S','U','G')
    and dp.principal_id >4
order by sp.name

迈克,谢谢你花时间给我一个很好的解释。当做