创建 Sql Server 身份验证帐户?

2023-12-01

我想创建一个Sql Server身份验证帐户,而不是数据库或帐户中的用户。

我的意思是我想创建一个帐户,以便在启动 sql 服务器时使用 SQL 事务或使用 C# 从中登录。


据我所知,您只能使用两种模式:Windows 或 SQL Server 身份验证。这意味着您只有两种选择:使用 Windows 帐户,或者创建可用于身份验证的 SQL Server 登录名。

EDIT:

要以编程方式创建 SQL Server 登录名,您可以使用 Sql Server 管理对象。我注意到您没有说您是想从 Windows(桌面)还是 Web 应用程序执行此操作。要使用 Sql Server Management 创建登录名(或执行任何类型的“管理”),代码需要以更高的权限运行 - 例如具有足够权限来管理 SQL Server 实例的本地或域帐户。

您需要添加对以下内容的引用(您可以使用版本 9.0 的程序集):

Microsoft.SqlServer.ConnectionInfo
Microsoft.SqlServer.Smo
Microsoft.SqlServer.SqlEnum

这样,以下代码足以创建 SQL 登录并将用户添加到目标数据库

        var serverName = "."; // Your SQL Server Instance name
        var databaseName = "Test"; // Your database name
        var loginName = "testuserY"; // Your login name (should not exist - or you should add code to check if the login exists)


        Server svr = new Server(serverName);
        var db = svr.Databases[databaseName];
        if (db != null)
        {
            // You probably want to create a login and add as a user to your database
            Login login = new Login(svr, loginName);
            login.DefaultDatabase = "master"; // Logins typically have master as default database
            login.LoginType = LoginType.SqlLogin;
            login.Create("foobar", LoginCreateOptions.None); // Enter a suitable password
            login.Enable();

            User user = new User(db, loginName);
            user.UserType = UserType.SqlLogin;
            user.Login = login.Name;
            user.Create();
            // add a role
            user.AddToRole("db_owner");
        }

您需要添加:

using Microsoft.SqlServer.Management.Smo;

您可以添加 try{} catch{} 块和管道代码以使其更加健壮,以便在发生故障时可以优雅地恢复

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建 Sql Server 身份验证帐户? 的相关文章

随机推荐

  • 使用 Javascript 将逗号分隔列表转换为 JSON

    如何使用 Javascript jQuery 将逗号分隔的列表转换为 json e g 转换以下内容 var names Mark Matthew Luke John into var jsonified names name Mark n
  • 为什么抽象类“DocumentBuilderFactory”允许实例化新实例

    最近 我一直在使用 XML 解析器 这对我来说才刚刚开始 我设法理解如何在 java 中使用 DOM 解析器类 即DocumentBuilderFactory and DocumentBuilder解析 XML 文档 DocumentBui
  • 使用 mod_rewrite 强制 SSL/HTTPS [重复]

    这个问题在这里已经有答案了 我有一个 Zend Framework 应用程序 我想使用 mod rewrite 将其强制转换为 HTTPS 当谈到 mod rewrite 时我非常迷失 这是我的应用程序根目录中当前的 htaccess 文件
  • 实体类型 MVC5 EF6 中的用户

    我在 MVC5 中创建了一个类 我想要一个内容的主要所有者 然后我想要一些内容编辑器 public class Content public int ID get set public IdentityUser Owner get set
  • Android Espresso:在按住按钮时进行断言

    我对 Android 上的 Espresso 很陌生 遇到了以下问题 我希望 Espresso 在按钮上执行长按 或其他操作 并且在按住按钮的同时 我想检查不同视图的状态 在 或多或少 伪代码中 onView withId button i
  • 在 Qt 中将 QString 转换为 Ascii 值,反之亦然

    我有一个QString StrData abcd 我想要得到Ascii该字符串的十六进制值 反之亦然 例如来自 abcd to 61 62 63 64 和来自 61 62 63 64 to abcd 我设法获得十六进制的 Ascii 值 但
  • 使用 Qt 依赖项并使用 c++11 编译适用于 iOS 的 c++(clang) 项目时出现编译错误“没有名为 std::u16string 的类型”

    我正在尝试使用适用于 iOS 的 clang 构建一个依赖于 Qt 的 C 库 我的编译命令是这样的 xcrun sdk iphoneos8 4 clang Iinclude I Users ls projects prompt files
  • 如何在 JavaScript 中使用模运算符 (%)? [复制]

    这个问题在这里已经有答案了 如何在 JavaScript 项目的数字计算中使用模运算符 这是余数运算符和 用于获得整数除法后的余数 很多语言都有它 例如 10 3 1 because 3 3 gets you 9 and 10 9 is 1
  • Fortran 命令行输入规范部分

    我是 Fortran 新手 在尝试通过命令行传递参数时遇到问题 例如我的工作代码有以下几行 experimental parameters real kind 8 parameter rhot 1 2456 density of top f
  • 如何在android中裁剪解析后的图像?

    我正在解析一个网站以显示 URL 中的内容 其中有一些图像 我想裁剪从网站解析的图像 我真的很苦恼 有人可以帮我解决这个问题吗 我假设您已经从网站上 获取 了图像并且想要调整大小而不是裁剪 IE 创建缩略图 如果是这样 您可以使用以下方法
  • gdb 符号不加载

    我尝试使用 gdb 和 gdbserver 远程调试程序 我使用 ssh 登录远程 PC 并运行gdbserver multi 4444在我的本地 我使用命令 arm linux gnueabihf gdb x path init其中的内容
  • 比较两个数据帧并过滤匹配的值

    上一个问题 Pandas 比较两个数据帧并确定匹配的值 我有两个数据框 print a ID Value 0 AA12 101 BB101 CC01 DD06 1 1 AA12 101 BB101 CC01 DD06 2 2 AA11 10
  • 如何在 Swing 中更新 JComboBox 实例?

    我有 3 个组合框 选择第一个组合框后 其余的应该更新 但我的代码似乎不起作用 请大家帮忙 这是我的代码 因为我的代码很长 所以我只写错误部分 example code public class GuiComponents JComboBo
  • 程序的一个实例“发生 JNI 错误”,而另一个实例则不然

    我在一台计算机上用 Eclipse Java Mars 编写了一个大型程序 运行良好 我将该程序导出为可运行的 Jar 文件并运行它没有出现任何问题 即使我将整个项目导出到另一台计算机 该程序仍然可以运行 当我对项目进行微小更改时 另一台计
  • 关于 Rust HashMap 和 String 借用的困惑

    该程序接受一个整数 N 后接 N 行 其中包含两个以空格分隔的字符串 我想将这些行放入HashMap使用第一个字符串作为键 第二个字符串作为值 use std collections HashMap use std io fn main l
  • 从 WordPress 全局搜索结果中排除 woocommerce 产品类别

    我使用此代码从 wordpress 搜索结果中排除某些帖子类别 function SearchFilter query if query gt is search query gt set cat 709 710 614 return qu
  • 我最多可以更改按钮的背景多少次?

    所以 我试图用我传递的颜色和白色之间的颜色来闪烁按钮 在代码崩溃后 它似乎只闪烁了很多次 我尝试过以不同的闪烁速率来实现闪烁 并且它 它有时还会破裂吗 在 a 中 我有类似 Background color rgb 255 0 0 的字符串
  • 如何将emacsclient背景设置为Emacs背景?

    我有 在我的 emacs 中 set background color 101416 set foreground color f6f3e8 我有 2 个绑定 alias ex emacsclient nw alias ec emacscl
  • 转储 Spring 启动配置

    我们的运维人员希望在应用程序启动时将 Spring boot 配置 即所有属性 转储到日志文件中 我认为这可以通过使用注释 ConfigurationProperties 注入属性并打印它们来完成 问题是是否有更好的或内置的机制来实现这一目
  • 创建 Sql Server 身份验证帐户?

    我想创建一个Sql Server身份验证帐户 而不是数据库或帐户中的用户 我的意思是我想创建一个帐户 以便在启动 sql 服务器时使用 SQL 事务或使用 C 从中登录 据我所知 您只能使用两种模式 Windows 或 SQL Server