首页 > 数据库 >15.1 SQL Server创建LOGIN(登录)

15.1 SQL Server创建LOGIN(登录)

时间:2023-01-30 14:22:31浏览次数:48  
标签:15.1 CREATE Server SQL login LOGIN CHECK

SQL Server创建LOGIN(登录)

目录

简介

可能有人分不清LOGIN和USER,这儿有一段网上的解释:

LOGIN是登录到服务器用的,用户是执行数据库运用的主体,是两个不同的概念,LOGIN是是针对服务器的,不能使用数据库的功能,USER是在某个数据库内起作用,一个LOGIN可以在多个数据库内映射(不太好形容)USER,即一个LOGIN即可以在A数据库内干活,也可以在B数据库内干活,也就是说每个数据库用户必须对应一个LOGIN,但一个LOGIN可以对应多个数据库的USER。

在创建访问SQL Server中数据库的用户之前,需要执行以下步骤:

  • 首先,为SQL Server创建LOGIN。
  • 其次,创建一个用户并将该用户映射到LOGIN。

创建LOGIN语法如下:

CREATE LOGIN login_name  --指定LOGIN名
WITH PASSWORD = password;--指定密码

密码区分大小写。它需要介于8到128个字符之间,可以包括a-z、a-z、0-9和大多数非字母数字字符。

注意,密码不能包含login_name或单引号。

在内部,SQL Server使用SHA-512存储密码哈希。迁移数据库时,可以在新数据库中重用旧数据库中LOGIN的哈希密码。

要使用已哈希的密码创建LOGIN,请使用HASHED关键字指定哈希密码,如下所示:

CREATE LOGIN login_name 
WITH PASSWORD = hashed_password HASHED;

出于安全原因,应该仅将已哈希的密码用于数据库迁移。

示例

以下语句创建一个名为bob的新LOGIN,密码为Ebe2di68.:

CREATE LOGIN bob
WITH PASSWORD='Ebe2di68.';

LOGINbob可以登录到SQL Server并查看数据库名称,但不能访问任何数据库。

要查看SQL Server实例的所有LOGIN,请使用以下查询:

SELECT
  sp.name AS login,
  sp.type_desc AS login_type,
  CASE
    WHEN sp.is_disabled = 1 THEN 'Disabled'
    ELSE 'Enabled'
  END AS status,
  sl.password_hash,
  sp.create_date,
  sp.modify_date
FROM sys.server_principals sp
LEFT JOIN sys.sql_logins sl
  ON sp.principal_id = sl.principal_id
WHERE sp.type NOT IN ('G', 'R')
ORDER BY create_date DESC;

SQL Server CREATE LOGIN语句更多选项

CHECK_POLICY选项

CHECK_POLICY选项允许指定运行SQL server的服务器的Windows密码策略应应用于登录。CHECK_POLICY可以为ONOFF。其默认值为ON

下面显示了带有CHECK_POLICY选项的CREATE LOGIN语句:

CREATE LOGIN login_name
WITH PASSWORD = password, 
CHECK_POLICY = {ON | OFF};

注意,CHECK_POLICY选项仅适用于SQL Server创建LOGIN。

CHECK_EXPIRATION选项

CHECK_EXPIRATION选项确定是否应在此LOGIN上强制执行密码过期策略。CHECK_EXPIRATION可以为ONOFF。默认值为OFF

下面是了带有CHECK_EXPIRATION选项的CREATE LOGIN语句:

CREATE LOGIN login_name
WITH PASSWORD = password, 
CHECK_EXPIRATION = {ON | OFF};

注意,CHECK_EXPIRATION选项仅适用于SQL Server创建LOGIN。

MUST_CHANGE选项

要在用户首次登录时提示他们输入新密码,则使用MUST_CHANGE选项。使用MUST_CHANGE选项时,CHECK_POLICYCHECK_EXPIRATION必须为ON。否则,语句将失败。

CREATE LOGIN login_name
WITH PASSWORD = password MUST_CHANGE,
     CHECK_POLICY=ON,
     CHECK_EXPIRATION=ON;

比如:

CREATE LOGIN alice
WITH PASSWORD = 'UcxSj12.' MUST_CHANGE,
     CHECK_POLICY=ON, 
     CHECK_EXPRIATION=ON;

在本例中,SQL Server将在用户首次登录时提示使用aliceLOGIN的用户输入新密码。

注意,MUST_CHANGE选项仅适用于SQL Server创建LOGIN。

从Windows域帐户创建LOGIN

语法:

CREATE LOGIN domain_name\login_name
FROM WINDOWS;

以下示例从sqlservertutorial\peter windows域帐户创建LOGIN:

CREATE LOGIN sqlservertutorial\peter
FROM WINDOWS;

注意,sqlservertutorial\peter windows域帐户必须存在。

SQL Server CREATE USER语句允许将用户添加到当前数据库。下面是CREATE USER语句的基本语法:

CREATE USER username 
FOR LOGIN login_name;
  • 首先,在CREATE USER关键字之后指定用户名。
  • 其次,为用户指定login_name。LOGIN必须在服务器上有效。要创建LOGIN,请使用create login语句。

标签:15.1,CREATE,Server,SQL,login,LOGIN,CHECK
From: https://www.cnblogs.com/michaelshen/p/17075770.html

相关文章

  • centos7.9离线安装mysql5.7.40(本文使用initialize-insecure安装方法)
    centos7.9离线安装mysql5.7.40(本文使用initialize-insecure安装方法)一、卸载CentOS7系统自带mariadb#查看系统自带的Mariadb[root@NIWAY-190~]#rpm-qa|grepmariadbm......
  • 二手MicroServer Gen8折腾记
    上个月冲动消费,入手了一台HPEProLiantMicroServerGen8。其实我早想搞一台正经的服务器来玩了,因为群晖的魔改Linux总是玩的不那么爽。现在心愿实现,开始折腾。重置iLO到......
  • Servlet+MySQL
    前后端调通后可以把数据存到数据库里了1.下载并配置SQLWindows中MySQL8详细安装教程2.netstart/stopmysql启动/关闭mysql,在管理员身份下运行3.mysql的可视化软件......
  • k8s集群不可用:The connection to the server 192.168.117.161:6443 was refused -
    虚拟机非正常关机后,k8s集群不可用获取节点,报如下错,kubectlgetnode 查看env:env|grep-ikubernetes 查看docker状态:systemctlstatusdocker 查看kubelet状态:systemct......
  • 通过 explain 关键字对sql进行优化
    在select语句之前增加explain关键字,MySQL会在查询上设置一个标记,执行查询时,会返回执行计划的信息,而不是执行这条SQL(如果from中包含子查询,仍会执行该子查询,将结果放......
  • Windows server 2012 安装ad域
    Windowsserver2012安装ad域 安装ad域(activedirectory)服务的作用:存储目录数据并管理域之间的通信,包括用户登录处理,身份验证和目录搜索等。 1.使用administrator......
  • SQL Server 安装 一
    平时很少涉及数据库相关的任务,每当要使用时,就搜索查找,用后就忘。这次决定把相关过程记录下来,供自己参考。先下载两个软件:SQL2017Express(数据库)和SQLServerManagemen......
  • mysql索引类型及操作
    一、索引主要类型PRIMARYKEY(主键索引)UNIQUE(唯一索引)INDEX(普通索引)FULLTEXT(全文索引)索引创建的通用语法altertable表名addindex索引名称(数据库字段名称);......
  • caddyserver 生产运行一种玩法实践
    实际上就是一个尝试,毕竟如果生产使用了caddyserver做为一些核心业务只是需要做不少考虑的参考图  备注:以上图是基于自建acme服务处理的(比较适合内部服务),因为caddyserver......
  • caddyserver 几个有用的配置参数
    不是介绍caddyserver的配置参数,核心是关于ssl证书以及配置存储存储的几个参数XDG_DATA_HOME主要是关于caddyserver基于acme协议处理证书的,比较有用,可以更好的管理证书存......