创建 SQL Server 登录名

本文将向您展示使用 Management Studio 和 Transact 查询创建 SQL Server 登录名的分步方法。在开始创建新的登录名之前,我将向您展示 Management Studio 中可用登录名的列表。

使用 SSMS 创建 SQL Server 登录名

要创建新的登录名,请展开“安全性”文件夹,然后右键单击“登录名”文件夹以打开上下文菜单。请选择“新建登录名...”选项来创建它。

Select New Option

选择“新建”选项后,将打开以下窗口。默认情况下,会选择 Windows 身份验证,因此我将登录名更改为 SQL Server 身份验证。

  • 登录名:请为此新创建的登录名使用唯一名称。这将是您用于数据库引擎的名称。
  • 密码:此处,您必须为上述用户名指定密码。
  • 强制执行密码策略:如果选中此选项,您的密码将遵循标准密码策略。
  • 强制执行密码过期:密码将在特定时间后过期。
  • 用户下次登录时必须更改密码:当用户使用这些新创建的凭据登录时,服务器会要求更改密码。

我们为新创建的登录名指定了 John,并设置了一些随机密码。

默认数据库:此处,您必须选择要分配给此用户的默认数据库名称。目前,我们选择默认数据库。

默认语言:您可以选择最适合您要求的语言。目前,我们保留英语作为默认值。

Choose the Default Database for SQL Server Login

服务器角色:使用此页面为此 SQL Server 登录用户分配服务器角色。我们已在《创建角色》中详细解释了所有服务器角色。目前,我选择默认的 Public 选项。

Assign Server Roles to User 6

用户映射:使用此创建登录名页面来选择数据库并为此用户分配数据库角色。由于我们选择下面的数据库作为默认数据库,因此登录名已自动将用户映射到该数据库。

同样,我们将撰写一篇专门的文章来解释每个数据库角色。所以,目前,我选择默认的 Public 和 db_Owner 选项。

Map User to Database Role 7

安全对象:此页面用于选择对象。由于是全新创建的,因此没有现有的安全对象。所以,请单击“搜索”按钮来搜索对象。目前,我选择服务器。

Add the Server Instance Object 9

您可以使用 Grant、With Grant 和 Deny 选项来授予或拒绝权限。目前,我们不进行任何更改。

Created Login permissions on instance 10

状态:此登录名选项卡或部分有两个选项

  • 允许连接到数据库引擎:如果您想提供连接权限,请选择 Grant;否则,请选择 Deny。
  • 登录:如果您希望此用户成为数据库管理员,请选择 Enabled,否则选择 Disabled。
Grant Permission 11

查看我们在 SQL Server Management Studio 中新创建的登录名。请单击“连接”按钮,使用 John 连接数据库引擎。

请将身份验证模式从 Windows 身份验证更改为 SQL Server 身份验证,并提供用户名和密码。

Created Log in to connect to Database Engine

我们已成功使用新创建的登录名登录数据库引擎。

Available users in management studio 15

使用 Transact 查询创建 SQL Server 登录名

创建登录名的基本语法是

-- Create Syntax
CREATE LOGIN [LoginName] -- This is the User 
WITH PASSWORD = 'provide_password' MUST_CHANGE,
CHECK_EXPIRATION = ON, -- This is Optional
CHECK_POLICY = ON, -- This is Optional
DEFAULT_DATABASE = [Database Name], -- This is Optional
DEFAULT_LANGUAGE = [Language Name];-- This is Optional

这将创建一个名为 Mahesh 的新登录名,并使用默认设置。

CREATE LOGIN Mahesh
WITH PASSWORD = 'password'

运行上面的查询

Messages
--------
Command(s) completed successfully.

它将显示我们新创建的 Mahesh。请转到其属性来查看或编辑登录名属性。如您所见,此登录名指向 master 数据库。

Create Login using query and Open properties Window 18

这将创建一个名为 Rob 的新登录名,其默认数据库和默认语言为英语。

CREATE LOGIN Rob
WITH PASSWORD = 'password', 
DEFAULT_DATABASE = [SQL Tutorial], -- This is Optional
DEFAULT_LANGUAGE = [English];-- This is Optional

您可以在其属性中看到相同的内容。

View User Default database and language 20

下面的 SQL Server 代码片段将创建一个名为 Christy 的新登录名。

  • 她登录时必须更改密码,
  • 密码将在一段时间后过期。
  • 密码应符合标准密码策略。
  • 这里,我们将下面的数据库用作默认数据库,默认语言为英语。
CREATE LOGIN Christy
WITH PASSWORD = 'password' MUST_CHANGE, 
CHECK_EXPIRATION = ON, -- This is Optional
CHECK_POLICY = ON, -- This is Optional
DEFAULT_DATABASE = [SQL Tutorial], -- This is Optional
DEFAULT_LANGUAGE = [English];-- This is Optional
Create Login 21

在“安全性”->“登录名”部分查看 Christy。您可以通过查看其属性来查看属性。

Edit existing user 25

我尝试使用 Christy 进行连接。

Connect to Server using SQL Authentication login 23

单击“连接”按钮后,SSMS 会要求您输入新密码。这是因为我们在查询中使用了 MUST_CHANGE。仅当您选中“用户下次登录时必须更改密码”选项时才会发生这种情况。

Change Password popup 24

编辑登录名

请转到 SQL Server 登录名文件夹以编辑现有(已创建)的登录名,选择所需的名称。右键单击该名称,然后选择“属性”选项。

Properties of a created Login 26

使用此“属性”窗口来修改服务器角色、用户映射、状态、安全对象等。

Properties window 27

使用 SSMS 删除 SQL Server 登录名(已创建)

请转到“登录名”文件夹以选择所需的名称。右键单击您要删除的名称,然后从中选择“删除”选项,如下图所示(在本段之前的第二个图像)。

选择“删除”选项后,将打开如下所示的窗口。单击“确定”删除现有登录名。

Delete Login and the Confirming Message

使用 Transact 查询删除登录名

下面的查询用于删除或丢弃登录名。

DROP LOGIN Rob

运行上面的查询

Messages
--------
Command(s) completed successfully.

可以看到没有 Rob 用户。