我正在尝试连接到不同域中 VPN 上的远程 SQL Server。当我在 SQL Server 上输入服务器名称并选择其他连接参数以添加我学校需要的一些额外内容时:
Integrated Security=SSPI; User ID=DOMAIN\username; Password=Password
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
登录失败。登录名来自不受信任的域,不能与 Windows 身份验证一起使用。
当我执行此 SQL 时:
USE ASPState
GO
IF NOT EXISTS(SELECT * FROM sys.sysusers WHERE NAME = 'R2Server\AAOUser')
CREATE USER [R2Server\AAOUser] FOR LOGIN [R2Server\AAOUser];
GO
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
该登录名已有一个使用不同用户名的帐户。
我怎么知道我的登录帐户的这个不同的用户名是什么?
SQL Server 日志文件查看器显示的消息:
Login failed for user [User]
Error: 18456, Severity: 14, State 38
Run Code Online (Sandbox Code Playgroud)
它实际上意味着什么:
Failed to open the explicitly specified database
Run Code Online (Sandbox Code Playgroud)
我的问题:
对于严重性和状态的每种组合,是否有 18456 错误(登录失败)的所有变体的列表,以及有用的描述文本?
我有一个谷歌,但除了特定的组合之外找不到任何东西。
查看特定登录的属性时,可以看到映射到该登录的用户列表:
我分析了 SQL Server Management Studio (SSMS),我看到 SSMS 一次连接到每个数据库并从 sys.database_permissions 检索信息
是否可以编写一个查询来检索上面显示的用户映射信息,或者我是否被迫使用游标或 sp_MSforeachdb 或类似的东西?
当我查看时sys.sql_logins
,我看到一个名为is_policy_checked
. 我可以相信我的密码策略已经针对此列值所在的所有登录名进行了检查1
吗?
我正在编写一个程序,需要我分配所有权限和代码中的所有内容。我被困在这部分:
我只想为 msdb 数据库单击“映射”下的小框并将该用户分配给 SqlAgentUser 角色。我需要一个能够添加/编辑 SQL Server 代理作业的用户。我可以使用 SSMS 获得正确的设置,但我一生都无法弄清楚如何在原始 SQL 中进行设置。
我已经查看了ALTER LOGIN,但没有看到任何可以满足我需要的东西。我怀疑我只是不知道 Google 的正确术语。我一般不会做这种事。
任何帮助深表感谢!
我已将我的数据库从 SQL 2005 移动到使用 SQL 2008 的服务器。
我现在正在尝试创建一个 ODBC 数据源。
我正在使用“使用用户输入的登录 ID 和密码进行 SQL Server 身份验证”并输入了我的登录名和密码。登录在 SQL Server Management Studio 中的安全-> 登录下可见。
登录名还包含我旧服务器中相同登录名的确切属性。当我输入用户名和密码后点击下一步时,我得到:
Connection failed:
SQLState: '28000'
SQL Server Error: 18456
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'myUser'.
Run Code Online (Sandbox Code Playgroud)
阅读本文后:http : //support.microsoft.com/kb/555332我意识到服务器属性仅设置为“Windows 身份验证模式”,但即使更改为“SQL Server 和 Windows 身份验证模式”我仍然有连接问题。我可以连接我的 Windows 帐户。
我们在 AlwaysOn 组中有 2 台服务器。
虽然每个同步数据库中的用户帐户都存在于两台服务器上,但数据库实例级登录仅存在于其中一台服务器上。即 DBINSTANCE->Security->Logins 在一台服务器上丢失。
因此,当发生故障转移时,我会在第二台服务器(没有相应的实例级别登录)上登录失败。
我如何克服这个问题?我应该以特殊方式设置用户帐户吗?
我正在使用 PostgreSQL 数据库。我在其中创建用户。所以我想知道
我们有一种情况,开发人员没有任何UPDATE
权限,但他们使用应用程序并查看连接字符串 -> 他们知道来自某些SQLLogin1
具有 UPDATE 权限的SQL 帐户(示例)的密码。我们目前的操作并不完善,有时需要修改生产数据(目前还没有 GUI)。
开发人员没有联系 DBA 并要求他修改数据,而是(不正确地)使用 SQL 帐户SQLLogin1
(有权修改数据),并通过 SQL Server Management Studio 连接自己修改数据。
DBA 无法SQLLogin1
在 Developer 看到新连接字符串和新密码的情况下更改密码,因为使用的应用程序连接字符串SQLLogin1
是由 Developer 维护的。
有没有办法拒绝访问SQLLogin1
SQL 登录,但前提是它通过 SSMS 连接?
同时如果SQLLogin1
正在连接.Net SqlClient Data Provider
(program_name
在sys.dm_exec_sessions
),必须允许登录。
这样我们就不想让开发人员使用 SSMS 连接SQLLogin1
,而使用的应用程序SQLLogin1
仍然可以连接。
logins ×10
sql-server ×8
security ×4
permissions ×2
connections ×1
ddl ×1
errors ×1
odbc ×1
password ×1
postgresql ×1
t-sql ×1