当前位置:网站首页>【SQL server速成之路】——身份验证及建立和管理用户账户
【SQL server速成之路】——身份验证及建立和管理用户账户
2022-07-06 05:31:00 【这个昵称我想了20分钟】
个人主页:这个昵称我想了20分钟
往期专栏:【速成之路】jQuery
【速成之路】Ajax
️本期专栏:【速成之路】SQL server
SQL Server 2012的身份验证模式
Sql server安全管理体现在如下几方面:
对用户登录进行身份验证。当用户登录到数据库系统时,系统对该用户的账户和口令进行验证,包括确认用户的账户是否有效以及能否访问数据库系统。
对用户进行的操作进行权限控制。当用户登录到数据库系统后,只能在允许的权限内对数据库中的数据进行操作。
用户对某一数据库进行某种操作,必须满足以下3个条件:
- 登录Sql server服务器时必须通过身份验证;
- 必须是该数据库的用户,或者是某一角色的成员;
- 必须有执行该操作的权限。
SQL Server2012有两种身份认证模式:Windows验证模式和SQL Server验证模式。如图是这两种模式登录SQL server服务器的情况。
1.Windows验证模式
以下是对于Windows验证模式登录的几点重要说明:
(1)必须将Windows账户加入到SQL Server中,才能采用Windows账户登录SQL Server。
(2)如果使用Windows账户登录到另一个网络的SQL Server,必须在Windows中设置彼此的托管权限。
2.SQL Server验证模式
在SQL Server验证模式下,SQL Server服务器要对登录的用户进行身份验证。当SQL Server在Windows操作系统上运行时,系统管理员设定登录验证模式的类型可为Windows验证模式和混合模式。当采用混合模式时,SQL Server系统既允许使用Windows登录账号登录,也允许使用SQL Server登录账号登录。
建立和管理用户账户
1.界面方式管理用户账户
1.建立Windows验证模式的登录名
(1)创建Windows的用户。以管理员身份登录到Windows ,打开“控制面板”,在管理账户中添加新的账户。
(2)将Windows账户加入到SQL Server中。以管理员身份登录到SQL Server Management Studio,在“对象资源管理器”中,展开“安全性”节点,并右击“登录名”项,选择“新建登录名”菜单项,如图所示。
打开“登录名-新建”窗口。如图所示,可以通过单击“常规”选项卡的“搜索”按钮,在“选择用户或组”对话框中选择相应的用户名或用户组添加到SQL Server 2012登录用户列表中。
2.建立SQL Server验证模式的登录名
要建立SQL Server验证模式的登录名,首先应将验证模式设置为混合模式。
(1)以系统管理员身份登录SQL Server Management Studio,在“对象资源管理器”中选择要登录的SQL Server服务器图标,右击鼠标,在弹出的快捷菜单中选择“属性”菜单项,打开“服务器属性”窗口。
(2)在打开的“服务器属性”窗口中选择“安全性”选项卡。选择服务器身份验证为“SQL Server和Windows身份验证模式”,单击“确定”按钮,保存新的配置,重启SQL Server服务即可。
在“对象资源管理器”窗口中单击“连接”,在下拉框中选择“数据库引擎”,弹出“连接到服务器”对话框。在该对话框中,“身份验证”选择“SQL Server身份验证”,“登录名”填写Jhon,输入密码,单击“连接”按钮,就能连接SQL Server了。
3.管理数据库用户
界面方式创建数据库用户账户的步骤如下(以xsbook数据库为例):
以系统管理员身份连接SQL Server,展开“数据库”→“xsbook”→“安全性”→选择“用户”,右击鼠标,选择“新建用户”菜单项,进入“数据库用户-新建”窗口。在“用户名”框中填写一个数据库用户名,“登录名”框中填写一个能够登录SQL Server的登录名。
注意:一个登录名在本数据库中只能创建一个数据库用户。选择默认架构为dbo,如图所示,单击“确定”按钮完成创建。
2.命令方式管理用户账户
1.创建登录名
在SQL Server 2012中,创建登录名可以使用CREATE LOGIN命令。语法格式:
CREATE LOGIN <登录名>
{ WITH PASSWORD = 'password' [ HASHED ] [ MUST_CHANGE ]
[ , <option_list> [ ,... ] ] /*WITH子句用于创建SQL Server登录名*/
| FROM /*FROM子句用于创建Windows登录名*/
WINDOWS [ WITH <windows_options> [ ,... ] ]
}
其中:
<option_list> ::=
SID = sid
| DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
| CHECK_EXPIRATION = { ON | OFF}
| CHECK_POLICY = { ON | OFF}
[ CREDENTIAL = credential_name ]
<windows_options> ::=
DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
说明:
(1)创建Windows验证模式登录名。创建Windows登录名使用FROM子句,在FROM子句的语法格式中,WINDOWS关键字指定将登录名映射到Windows登录名,其中,<windows_options>为创建Windows登录名的选项,DEFAULT_DATABASE指定默认数据库,DEFAULT_LANGUAGE指定默认语言。
【例1】 使用命令方式创建Windows登录名tao(假设Windows用户tao已经创建,本地计算机名为DAVID-PC),默认数据库设为xsbook。
USE master
GO
CREATE LOGIN [DAVID-PC\tao]
FROM WINDOWS
WITH DEFAULT_DATABASE= xsbook
(2)创建SQL Server验证模式登录名。创建SQL Server登录名使用WITH子句,其中:
- PASSWORD:用于指定正在创建的登录名的密码,password为密码字符串。
- <option_list>:用于指定在创建SQL Server登录名时的一些选项。
【例2】 创建SQL Server登录名sql_tao,密码为123456,默认数据库设为xsbook。
CREATE LOGIN sql_tao
WITH PASSWORD='123456',
DEFAULT_DATABASE=xsbook
2.删除登录名
删除登录名使用DROP LOGIN命令。语法格式:
DROP LOGIN <登录名>
例如,删除Windows登录名tao。
DROP LOGIN [DAVID-PC\tao]
删除SQL Server登录名sql_tao。
DROP LOGIN sql_tao
3.创建数据库用户
创建数据库用户使用CREATE USER命令。语法格式:
CREATE USER <用户名>
[{ FOR | FROM } LOGIN <登录名> | WITHOUT LOGIN ]
[ WITH DEFAULT_SCHEMA = schema_name ]
说明:
(1)FOR或FROM子句用于指定与用户名相关联的登录名。
(2)LOGIN指定要创建数据库用户的SQL Server登录名,必须是服务器中有效的登录名。
(3)WITHOUT LOGIN指定不将用户映射到现有登录名。
(4)WITH DEFAULT_SCHEMA指定服务器为此数据库用户解析对象名称时将搜索的第一个架构,默认为dbo。
【例3】 使用SQL Server登录名sql_tao(假设已经创建)在xsbook数据库中创建数据库用户tao,默认架构名使用dbo。
USE xsbook
GO
CREATE USER tao
FOR LOGIN sql_tao
WITH DEFAULT_SCHEMA=dbo
4.删除数据库用户
删除数据库用户使用DROP USER语句。语法格式:
DROP USER <用户名>
【例4】 删除xsbook数据库的数据库用户tao。
USE xsbook
GO
DROP USER tao
边栏推荐
- Please wait while Jenkins is getting ready to work
- JDBC calls the stored procedure with call and reports an error
- 初识CDN
- 应用安全系列之三十七:日志注入
- F12 solve the problem that web pages cannot be copied
- [cloud native] 3.1 kubernetes platform installation kubespher
- Oracle deletes duplicate data, leaving only one
- 05. 博客项目之安全
- C AES encrypts strings
- February 12 relativelayout
猜你喜欢
随机推荐
Solution of QT TCP packet sticking
Modbus协议通信异常
03. 开发博客项目之登录
Web Security (VI) the use of session and the difference between session and cookie
Web Security (V) what is a session? Why do I need a session?
[JVM] [Chapter 17] [garbage collector]
Fluent implements a loadingbutton with loading animation
Quantitative description of ANC noise reduction
Text classification still stays at Bert? The dual contrast learning framework is too strong
Pointer classic written test questions
UCF (summer team competition II)
29io stream, byte output stream continue write line feed
[detailed explanation of Huawei machine test] statistics of shooting competition results
[effective Objective-C] - memory management
Excel转换为Lua的配置文件
Notes, continuation, escape and other symbols
02. 开发博客项目之数据存储
指針經典筆試題
MySQL advanced learning summary 9: create index, delete index, descending index, and hide index
Codeforces Round #804 (Div. 2) Editorial(A-B)