创建用户登录注意事项

密码是区分大小写的。

只有创建SQL Server登录时,才支持对密码预先进行哈希运算。

如果指定MUST_CHANGE,则CHECK_EXPIRATION和 CHECK_POLICY必须设置为 ON。 否则,该语句将失败。

不支持CHECK_POLICY=OFF和 CHECK_EXPIRATION=ON的组合。

如果CHECK_POLICY设置为OFF,将对lockout_time进行重置,并将CHECK_EXPIRATION设置为OFF。

只有在Windows Server 2003及更高版本上才会强制执行CHECK_EXPIRATION 和 CHECK_POLICY。

从证书或非对称密钥创建的登录名仅用于代码签名。不能用于连接到 SQL Server。仅当master中已存在证书或非对称密钥时,才能从证书或非对称密钥创建登录名。

有关用于传输登录名的脚本,请参阅如何在 SQL Server 2005 和 SQL Server 2008 的实例之间传输登录名和密码。

自动创建登录名将启用新的登录名,并授予它服务器级CONNECT SQL 权限。

服务器的身份验证模式必须匹配登录名类型才能允许访问。

有关设计权限系统的信息,请参阅 Getting Started with Database Engine Permissions。

只有具有针对服务器的ALTER ANY LOGIN权限或securityadmin固定服务器角色的成员身份的用户才可创建登录。

如果使用CREDENTIAL选项,则还需要对此服务器的ALTER ANY CREDENTIAL权限。

使用SSMS数据库管理工具创建用户登录

1、连接数据库-》展开安全性-》选择登录名-》选择新建登录名。

2、在登录名-新建弹出框-》点击常规-》输入登录名-》选择sqlserver身份验证-》输入密码-》选择不强制实施密码过期策略-》选择默认数据库-》选择默认语言。

3、在登录名-新建弹出框-》点击服务器角色-》选择要向角色授予的安全特权。

4、在登录名-新建弹出框-》点击用户映射-》选择用户可以登录的数据库-》选择用户拥有的登录数据库的权限。

5、在登录名-新建弹出框-》点击安全对象-》点击搜索添加安全对象-》安全对象添加完成后选择安全对象权限。

6、在登录名-新建弹出框-》点击状态-》选择默认即可。

7、点击确定-》查看添加结果。

使用T-SQL脚本创建用户登录

语法

--声明数据库引用
use testss;
go

创建用户登录
create login login_name
with
password={ 'password' | hashed_password hashed }
[must_change][,]
[sid=0x14585E90117152449347750164BA00A7][,]
[default_database=database_name][,]
[default_language=language][,]
[check_expiration={ on | off }][,]
[check_policy={ on | off }][,]
[credential=credential_name]

语法注释

--login_name
--指定创建的登录名。有四种类型的登录:SQLServer登录、Windows登录、证书映射登录和非对称密钥映射登录。
--在创建从Windows域帐户映射的登录名时,必须以[<domainName>\<login_name>]格式使用Windows 2000之前的用户登录名。
--不能使用login_name@DomainName格式的UPN。
--有关示例,请参阅本文后面的示例D。身份验证登录的类型为sysname,它必须符合标识符规则,且不能包含“\”。
--Windows登录名可以包含“\”。Active Directory用户的登录名需少于21个字符。

--password='password*'
--仅适用于SQL Server登录。指定正在创建的登录名的密码。应使用强密码。
--有关详细信息,请参阅强密码和密码策略。从SQL Server 2012 (11.x)开始,存储的密码信息使用 SHA-512 加盐密码进行计算。
--密码是区分大小写的。密码应始终至少包含 8 个字符,并且不能超过128个字符。
--密码可以包含 a-z、A-Z、0-9 和大多数非字母数字字符。 密码不能包含单引号或 login_name。

--password=hashed_password
--仅适用于hashed关键字。指定要创建的登录名的密码的哈希值。
--hashed仅适用于SQL Server登录。指定在password参数后输入的密码已经过哈希运算。
--如果未选择此选项,则在将作为密码输入的字符串存储到数据库中之前,对其进行哈希运算。
--此选项应仅用于在服务器之间迁移数据库。切勿使用hashed选项创建新的登录名。hashed选项不能用于SQL 7或更早版本创建的哈希。

--must_change
--仅适用于SQL Server登录。如果包括此选项,则SQL Server将在首次使用新登录时提示用户输入新密码。

--sid=sid
--用于重新创建登录名。仅适用于SQL Server身份验证登录,不适用于Windows身份验证登录。指定新SQL Server身份验证登录的sid。
--如果未使用此选项,SQL Server将自动分配sid。sid结构取决于SQL Server版本。 QL Server登录sid:基于GUID的16 字节(binary(16))文本值。 例如,sid 0x14585E90117152449347750164BA00A7。

--default_database=database
--指定将指派给登录名的默认数据库。如果未包括此选项,则默认数据库将设置为master。

--default_language=language
--指定将指派给登录名的默认语言。如果未包括此选项,则默认语言将设置为服务器的当前默认语言。即使将来服务器的默认语言发生更改,登录名的默认语言也仍保持不变。

--check_expiration={ on | off }
--仅适用于SQL Server登录。 指定是否应对此登录帐户强制实施密码过期策略。 默认值为off。

--check_policy={ on | off }
--仅适用于SQL Server登录。 指定应对此登录强制实施运行SQL Server 计算机的 Windows 密码策略。 默认值为on。
--如果 Windows 策略要求强密码,密码必须至少包含以下四个特点中的三个:
--大写字符 (A-Z)。
--小写字符 (a-z)。
--数字 (0-9)。
--一个非字母数字字符,如空格、、@、*、^、%、!、$、# 或 &。

--credential=credential_name
--将映射到新SQL Server登录的凭据名称。 该凭据必须已存在于服务器中。当前此选项只将凭据链接到登录名。凭据不能映射到系统管理员(sa)登录名。

示例

--声明数据库引用
use testss;
go

--创建登录用户
create login testuser
with
password='123456',
--must_change,
--sid=0x14585E90117152449347750164BA00A7,
default_database=master,
--default_language=language,
check_expiration=off,
check_policy=off
--credential=[sysadmin]
go

--可以添加多个服务器角色
--创建服务器角色, 服务器角色用于向用户授权服务器范围内的安全特权
--alter server role [bulkadmin] add member testuser;
--go
--alter server role [dbcreator] add member testuser;
--go
--alter server role [diskadmin] add member testuser;
--go
--alter server role [processadmin] add member testuser;
--go
--alter server role [securityadmin] add member testuser;
--go
--alter server role [serveradmin] add member testuser;
--go
--alter server role [setupadmin] add member testuser;
--go
alter server role [sysadmin] add member testuser;
go

--创建用户映射,映射到此登录名的用户
use [model]
go
create user testuser for login testuser;
go

--use [msdb]
--go
--create user testuser for login testuser;
--go

--use [ReportServer]
--go
--create user testuser for login testuser;
--go

--use [ReportServerTempDB]
--go
--create user testuser for login testuser;
--go

--use [tempdb]
--go
--create user testuser for login testuser;
--go

use [testss]
go
create user testuser for login testuser;
go

----创建用户登录数据库
--use [master]
--go
--create user [testuser] for login [testuser];
--go

----创建用户登录多个数据库
--use [testss]
--go
--create user [testuser] for login [testuser];
--go

----声明数据库应用
--use [testss]
--go

----授予不安全的程序集
--grant unsafe assembly to testuser;
--go

----授予查看服务器状态
--grant view server state to testuser;
--go

----授予查看任意定义
--grant view any definttion to testuser;
--go

----授予查看任意数据库
--grant view any database to testuser;
--go

----授予创建DDL事件通知
--grant create ddl event notification to testuser;
--go

----授予创建端点
--grant create endpoint to testuser;
--go

----授予创建服务器角色
--grant create server role to testuser;
--go

----授予创建跟踪事件通知
--grant create trace event notification to testuser;
--go

----授予创建可用性组
--grant create availability group to testuser;
--go

----授予创建任意数据库
--grant create any database to testuser;
--go

----授予更改服务器状态
--grant alter server state to testuser;
--go

----授予更改跟踪
--grant alter trace to testuser;
--go

----授予更改任何服务器角色
--grant alter any server role to testuser;
--go

----授予更改任何可用性组
--grant alter any availability group to testuser;
--go

----授予更改任意登录名
--grant alter any login to testuser;
--go

----授予更改任意端点
--grant alter any endpoint to testuser;
--go

----授予更改任意服务器审核
--grant alter any server audit to testuser;
--go

----授予更改任意权限
--grant alter any connection to testuser;
--go

----授予更改任意连接服务器
--grant alter any linked server to testuser;
--go

----授予更改任意凭据
--grant alter any credential to testuser;
--go

----授予更改任意事件会话
--grant alter any event session to testuser;
--go

----授予更改任意事件通知
--grant alter any event notification to testuser;
--go

----授予更改任意数据库
--grant alter any database to testuser;
--go

----授予更改设置
--grant alter settings to testuser;
--go

----授予更改资源
--grant alter resources to testuser;
--go

----授予关闭
--grant shutdown to testuser;
--go

----授予管理大容量操作
--grant administer bulk operations to testuser;
--go

----授予控制服务器
--grant control server to testuser;
--go

----授予连接SQL
--grant connect sql to testuser;
--go

----授予外部访问程序集
--grant external access assembly to testuser;
--go

----授予验证服务器
--grant authenticate server to testuser;
--go

--设置是否允许连接到数据库引擎
--deny connect sql to testuser;
--go
--是否允许登录
--alter login testuser disable;
--go

----用户状态
----声明默认数据库引用
--use [testuser]
--go
----是否允许用户连接到数据库引擎
--deny connect sql to [testuser];
--go
----是否允许登录
--alter login [testuser] disable
--go

示例结果

使用新创建的用户名登录

1、在对象资源管理器中-》点击新建连接。

2、在连接到服务器弹出框-》选择sqlserver身份验证-》输入用户名和密码-》点击连接。

3、查看结果。

SQLServer创建用户登录的更多相关文章

  1. sqlserver 创建用户 sp_addlogin

    创建新的 Microsoft® SQL Server™ 登录,使用户得以连接使用 SQL Server 身份验证的 SQL Server 实例.  语法: sp_addlogin [ @loginam ...

  2. SQLserver创建用户和给用户权限(学)

    数据库基础知识:http://blog.csdn.net/u014600432/article/details/39645701 在SQL Server中创建用户角色及授权(使用SQL语句):http ...

  3. 使用Servlet和jdbc创建用户登录验证

    首先创建一个用户表,用来保存用户名 密码,并插入几条数据 mysql> desc user;+----------+-------------+------+-----+---------+-- ...

  4. SQLServer创建用户、数据库、表、约束、存储过程、视图

    --创建登录账户和数据库用户 ' exec sp_grantdbaccess 'sysAdmin','aa' --给数据库用户赋权限 grant select,update,insert,delete ...

  5. sqlserver 创建用户仅仅能訪问指定视图

    use crm --当前数据库创建角色 exec sp_addrole 'rapp' --分配视图权限 GRANT SELECT  ON veiw TO [角色] --指定视图列表 GRANT SEL ...

  6. SqlServer sa 用户登录失败的解决方法

    一.控制面板->服务->MS SQL SERVER->登录-->本地系统帐户-->重新启动MS SQL SERVER用windows验证登陆查询分析器-->执行 s ...

  7. 本地MySQL的root所创建用户登录发生[Access denied for user 'root1'@'localhost' (using password: YES)]错误的解决方案

    1.问题描述: 当在SQLyog中执行以下脚本: CREATE DATABASE IF NOT EXISTS sys; USE sys; CREATE USER root1 IDENTIFIED BY ...

  8. Django学习路13_创建用户登录,判断数据库中账号名密码是否正确

    在 models.py 中设置数据库表的信息 from django.db import models # Create your models here. class User(models.Mod ...

  9. ASP.NET MVC5 网站开发实践(二) Member区域 - 用户部分(2)用户登录、注销

    上次实现了用户注册,这次来实现用户登录,用到IAuthenticationManager的SignOut.SignIn方法和基于声明的标识.最后修改用户注册代码实现注册成功后直接登录. 目录: ASP ...

随机推荐

  1. 关于Mybatis的一些随笔

    Mapper.xml头文件 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http:/ ...

  2. Eclipse4JavaEE安装SpringBoot

    第一步:下载SpringBoot SpringBoot官网下载链接 第二步:在Eclipse里进行安装 打开Eclipse,菜单栏Help ->Install New Software,进入下图 ...

  3. Proj.Net 投影介绍

    Proj.Net是开源地图投影库Proj.4的.net版本,许多GIS开源软件的投影都直接或间接地使用Proj.4的库,Proj.4是用C语言编写..Net下的开源GIS项目NetTopologySu ...

  4. 写个重新加载 ocelot 配置的接口

    写个重新加载 ocelot 配置的接口 Intro 我们想把 ocelot 的配置放在自己的存储中,放在 Redis 或者数据库中,当修改了 Ocelot 的配置之后希望即时生效,又不想在网关这边定时 ...

  5. July 09th, 2018. Monday, Week 28th.

    Happiness is an inside job. 自内寻找,才能找到幸福. From William Arthur Ward. Nobody wants to suffer, and we al ...

  6. 《前端之路》之五 head 头标签指南

    12:head 头标签指南 常见头标签 DOCTYPE 文档模式 对文档进行有效性验证 告诉用户代理或浏览器这个文档是按照什么DTD写的,但是这个动作是被动的,每次页面加载时,浏览器并不会下载DTD, ...

  7. 手撸GitLab CI(阉割版)

    上一集我们说到如何从零开始搭建一个Vue-cli 3.0的项目,而这一集我们将说到如何手写一份阉割版的CI脚本. 首先说一下GitLab部署到服务器的操作,一般有两种,一种是规范化分离的,包含runn ...

  8. Spring Boot 2.x :通过 spring-boot-starter-hbase 集成 HBase

    摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 本文内容 HBase 简介和应用场景 spring-boot- ...

  9. SmartSql Zookeeper分布式配置

    安装 SmartSql.ZooKeeperConfig Install-Package SmartSql.ZooKeeperConfig Demo string connStr = "192 ...

  10. 能够玩转BKY皮肤的 geek,有一半最后都成为了前端大师

    By Conmajia March 9, 2018 剩下的那一半全部扑街了. 世纪之初,BKY那些花里胡哨的预设皮肤曾经让初识网络的懵懂学子雀跃不已. 然而以现在的审美眼光看来,这些带着一股子扑面而来 ...