我正在通过这样的 Web 应用程序创建数据库用户:
try
{
SetConnection(server);
string sql =
"USE [master]" +
" CREATE LOGIN" + " [TP1\\" + user + "] FROM WINDOWS WITH DEFAULT_DATABASE=[master], " +
"DEFAULT_LANGUAGE=[us_english] " +
"EXEC sys.sp_addsrvrolemember @loginame = N'TP1\\" + user + "', @rolename = N'sysadmin'";
_tableContext.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction, sql);
}
catch (Exception e)
{
// log error
throw e;
}
它工作正常。
我正在测试应用程序并输入了 WINDOWS-NT 中不存在的名称并收到以下错误:
未找到 Windows NT 用户或组 'TP1\MyName'。再次检查名称。\r\n“TP1\MyName”不是有效登录名或您没有权限。\r\n已将数据库上下文更改为“master”
经过一段时间的研究,我发现我可以SELECT * FROM sysusers
但这只显示用户是否已经在该服务器上注册。
我想知道是否有办法检查用户名是否是有效的 NT 用户?