标签: logins

Sql Server 修复用户

我使用以下命令在我的数据库中创建一个用户:

CREATE USER Test WITHOUT LOGIN
Run Code Online (Sandbox Code Playgroud)

我用测试名称创建了一个登录名。

我想将测试用户与测试登录联系起来。

当我使用以下命令时:

EXEC sp_change_users_login 'Update_One', 'Test', 'Test'
Run Code Online (Sandbox Code Playgroud)

SQL Server 引发了以下错误:

Msg 15291, Level 16, State 1, Procedure sp_change_users_login, Line 114
Terminating this procedure. The User name 'Test' is absent or invalid.
Run Code Online (Sandbox Code Playgroud)

当我使用以下命令时:

ALTER USER Test WITH LOGIN = Test
Run Code Online (Sandbox Code Playgroud)

SQL Server 引发波纹管错误:

Msg 33016, Level 16, State 1, Line 2
The user cannot be remapped to a login. Remapping can only be done for users that were mapped to Windows or SQL logins. …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server sql-server-2008-r2 sql-server-2012 logins

7
推荐指数
1
解决办法
2万
查看次数

属性类 Length Annotation PersistedResolvableAnnotation

我正在尝试使用 sqlpackage.exe 实用程序部署 ssdt 项目。我收到以下错误(德语):

Fehler bei der Erstellung des Bereitstellungsplans。Die Bereitstellung kann nicht fortgesetzt werden。元素属性-类别长度在元素-oder Annotation-Klasse PersistedResolvableAnnotation中尚无定论。

这意味着…… 喜欢:

创建部署计划时出错。部署无法继续。属性类 Length 不包含在元素或注释类 PersistedResolvableAnnotation 中。

我找不到关于“PersistedResolvableAnnotation”的很多信息。但我意识到它包含在 dacpac 的 model.xml 中。

它包含一些与此类似的 SqlLogins 定义:

<Element Type="SqlUser" Name="[Angela]">
            <Property Name="IsWithoutLogin" Value="True" />
            <Relationship Name="DefaultSchema">
                <Entry>
                    <References Name="[Angela]" Disambiguator="8" />
                    <Annotation Type="**PersistedResolvableAnnotation**" Name="[Angela]">
                        <Property Name="TargetTypeStorage" Value="SqlSchema" />
                        <Property Name="Length" Value="8" />
                        <Property Name="Offset" Value="62" />
                    </Annotation>
                </Entry>
            </Relationship>
        </Element>
Run Code Online (Sandbox Code Playgroud)

Angela(和其他候选人)不作为 Login 存在于目标服务器上,尽管他们是目标数据库中的注册数据库用户。我期待另一个错误——如果有的话——而不是这个无用的错误。

该项目的数据库基于一个非常古老的 SQL Server 版本。是否有可能这是来自 Sql Server 版本的一些已弃用的功能/语法或属性,并且根本不受支持?有谁知道更多详情?

deployment sql-server-2008-r2 logins ssdt

7
推荐指数
1
解决办法
3145
查看次数

NT SERVICE\SQLTELEMETRY 用户

我注意到 SQL Server 2016 安装包括一个名为 NT SERVICE\SQLTELEMETRY 的新默认登录。我知道对于 SQL Server 2016 的免费版本,您在许可中同意允许您的服务器向 Microsoft 发送遥测信息。我猜想这个登录名与那项工作有关。作为我们新实例安装过程的一部分,我们更愿意清理和删除任何未使用的系统或默认登录,以避免潜在的安全漏洞或混乱。这个帐户是否有任何特别重要的事情,以至于我们想要保留它,如果没有,它是否会违反许可协议来禁用或删除它?我应该注意到我们的 SQL Server 通常不是面向 Internet 的。

sql-server logins sql-server-2016

7
推荐指数
1
解决办法
2万
查看次数

以不同用户身份登录的 T-SQL 命令?

是否有 T-sql 命令,例如 Oracle“Connect”,它可以让我更改我登录的用户?

sql-server t-sql logins

6
推荐指数
1
解决办法
1万
查看次数

如何将默认数据库更改为所有登录名?

我对 SQL Server 有点陌生,我正在尝试编写 Microsoft SQL Server (2005-2014) 安装后活动的脚本,但我在更改登录时遇到了一些困难。公司政策规定没有登录应该默认使用 master 数据库,因此我的计划是识别所有默认使用 master 的登录并将 master 更改为 tempdb。

可以使用这样的查询更改单次登录:

ALTER LOGIN [sa] WITH DEFAULT_DATABASE = tempdb
Run Code Online (Sandbox Code Playgroud)

试图在所有登录中实现这一点(不知道它们的数量和名称),我知道我很天真,希望这样的事情会起作用(但不得不尝试):

UPDATE master..syslogins
SET dbname = 'tempdb'
WHERE dbname = 'master'
Run Code Online (Sandbox Code Playgroud)

显然输出是一个错误(逻辑上):

Ad hoc updates to system catalogs are not allowed.

SQL Server 处于 MIX 身份验证模式,因此几乎所有内容都可以登录 - SQL 登录、Windows 本地或域用户或组(不确定这是否会对解决方案产生任何影响)。解决方案应该与版本无关,但是假设从 SQL Server 2005 向前启动(...是的,仍然有一些古老的版本...)

任何人都可以帮我找到合适的查询来实现这一目标吗?

sql-server t-sql logins

6
推荐指数
1
解决办法
7221
查看次数

N次登录尝试失败后如何锁定sql登录

考虑我有一个名为 sql_login 的登录名。登录尝试失败sql_login后,我可以锁定登录吗5

当我们创建登录时,我们可以看到有一个名为密码策略检查图像的选项。但是没有提到锁定密码

在此处输入图片说明

N尝试登录失败后,Sql Server 中是否有锁定登录的选项

sql-server sql-server-2012 logins password

6
推荐指数
1
解决办法
2万
查看次数

一步禁用多次登录

有没有办法根据表中的一组用户禁用多个 sql 登录?例如:

ALTER LOGIN (Select userid from tbl_user) DISABLE;
Run Code Online (Sandbox Code Playgroud)

security sql-server ddl users logins

6
推荐指数
1
解决办法
907
查看次数

由于触发器执行,登录失败

我一直在尝试使用我的其中之一登录,sql server logins但收到以下错误消息:

一般错误信息

在此处输入图片说明

复制消息文本

TITLE: Connect to Server
------------------------------

Cannot connect to MY_SERVER.

------------------------------
ADDITIONAL INFORMATION:

Logon failed for login 'cola' due to trigger execution.
Changed database context to 'master'.
Changed language setting to us_english. (Microsoft SQL Server, Error: 17892)

For help, click: http://go.microsoft.com/fwlink?> ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=17892&LinkId=20476

------------------------------
BUTTONS:

OK
------------------------------
Run Code Online (Sandbox Code Playgroud)

高级信息

在此处输入图片说明

我知道下面的问题,但它略有不同,我已经尝试了那里所说的所有内容,但对我没有用,这就是我在这里提出这个问题的原因:

“由于触发器执行,登录 'sa' 登录失败。” 未定义 SA 登录触发器时

这里的这个问题也非常相似:

用户登录失败 - 错误:18456,严重性:14,状态:38

从这个我得到了以下信息:

用户登录失败 - 错误 18456 - 严重性 14,状态 38

1      'Account is locked out'
2      'User …
Run Code Online (Sandbox Code Playgroud)

security sql-server logins connections sql-server-2016

6
推荐指数
1
解决办法
2万
查看次数

如何判断我在通过 Windows 身份验证登录时使用了哪个 Windows 组登录名

我创建了两个对应于两个 Windows 组的 SQL Server 登录名:

MachineName\MyAppAmdin
MachineName\MyAppUser
Run Code Online (Sandbox Code Playgroud)

然后在数据库中,我创建了两个具有相同名称的用户并将它们映射到登录名。

在 Windows 服务器中,我将我的域帐户添加MyDomain\MyAccountMachineName\MyAppAmdin组中。

现在我可以通过 Windows 身份验证通过MyDomain\MyAccount.

问题是,我想确切地知道我正在使用哪个 Windows 组登录,但我不知道如何。

我试过:

ORIGINAL_LOGIN()
SYSTEM_USER
SUSER_SNAME
SELECT * FROM dm_exec_sessions
Run Code Online (Sandbox Code Playgroud)

以上所有内容都会返回MyDomain\MyAccount,但我需要知道的是我是否通过MachineName\MyAppAmdin.

总结一下,我的问题是:

有没有办法准确判断当前连接使用的是哪个 Windows 组登录(或用户)?

或者有什么方法可以检查是否MyDomain\MyAccount与特定用户或登录名相关联?

我知道我可以使用 C# 或命令来解析域帐户是否属于特定的 Windows 组,但是我们有一些新的 IT 策略,所以我正在考虑使用 TSQL 实现类似结果的方法。

security sql-server t-sql sql-server-2012 logins

6
推荐指数
1
解决办法
2555
查看次数

SQL Server - 包含的数据库用户密码过期如何工作?

我最近开始使用包含的数据库,但我不明白包含的数据库用户是否/如何拥有过期的密码。

MSDN 文档说他们这样做 - 使用 SQL Server 登录,有强制密码过期的选项框,但对于包含的数据库用户来说,这不存在(据我所知)。

这些包含的数据库帐户已经存在一段时间了,我们的域策略是每 6 个月重置一次密码,但我们从未更改过这些密码,而且应用程序在过去几年中使用相同的密码连接得很好。

我的第一个问题是我怎么知道对包含的数据库用户强制执行“密码过期”?对于 SQL 登录is_expiration_checkedsys.sql_logins.

使用传统的 SQL 登录,我可以使用以下函数来获取更改 SQL Server 登录的时间

LOGINPROPERTY('login','PasswordLastSetTime')  
Run Code Online (Sandbox Code Playgroud)

包含的数据库用户是否有类似的东西?

sql-server logins password contained-database

6
推荐指数
1
解决办法
497
查看次数