创建数据库用户 如何给mysql数据库添加一个用户
大家好,今天来为大家分享创建数据库用户的一些知识点,和如何给mysql数据库添加一个用户的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
如何给mysql数据库添加一个用户
首先以root身份登录到MySQL服务器中。
$ mysql-u root-p
当验证提示出现的时候,输入MySQL的root帐号的密码。
创建一个MySQL用户
使用如下命令创建一个用户名和密码分别为"myuser"和"mypassword"的用户。
mysql> CREATE USER'myuser'@'localhost' IDENTIFIED BY'mypassword';
一旦用户被创建后,包括加密的密码、权限和资源限制在内的所有帐号细节都会被存储在一个名为user的表中,这个表则存在于mysql这个特殊的数据库里。
运行下列命令,验证帐号是否创建成功
mysql> SELECT host, user, password FROM mysql.user WHERE user='myuser';
赋予MySQL用户权限
一个新建的MySQL用户没有任何访问权限,这就意味着你不能在MySQL数据库中进行任何操作。你得赋予用户必要的权限。以下是一些可用的权限:
ALL:所有可用的权限
CREATE:创建库、表和索引
LOCK_TABLES:锁定表
ALTER:修改表
DELETE:删除表
INSERT:插入表或列
SELECT:检索表或列的数据
CREATE_VIEW:创建视图
SHOW_DATABASES:列出数据库
DROP:删除库、表和视图
运行以下命令赋予"myuser"用户特定权限。
mysql> GRANT<privileges> ON<database>.<table> TO'myuser'@'localhost';
以上命令中,<privileges>代表着用逗号分隔的权限列表。如果你想要将权限赋予任意数据库(或表),那么使用星号(*)来代替数据库(或表)的名字。
例如,为所有数据库/表赋予 CREATE和 INSERT权限:
mysql> GRANT CREATE, INSERT ON*.* TO'myuser'@'localhost';
验证给用户赋予的全权限:
mysql> SHOW GRANTS FOR'myuser'@'localhost';
将全部的权限赋予所有数据库/表:
mysql> GRANT ALL ON*.* TO'myuser'@'localhost';
你也可以将用户现有的权限删除。使用以下命令废除"myuser"帐号的现有权限:
mysql> REVOKE<privileges> ON<database>.<table> FROM'myuser'@'localhost';
为用户添加资源限制
在MySQL中,你可以为单独的用户设置MySQL的资源使用限制。可用的资源限制如下:
MAX_QUERIES_PER_HOUR:允许的每小时最大请求数量
MAX_UPDATES_PER_HOUR:允许的每小时最大更新数量
MAX_CONNECTIONS_PER_HOUR:允许的每小时最大连接(LCTT译注:其与 MySQL全局变量: max_user_connections共同决定用户到数据库的同时连接数量)数量
MAX_USER_CONNECTIONS:对服务器的同时连接量
使用以下命令为"myuser"帐号增加一个资源限制:
mysql> GRANT USAGE ON<database>.<table> TO'myuser'@'localhost' WITH<resource-limits>;
在<resource-limits>中你可以指定多个使用空格分隔开的资源限制。
例如,增加 MAXQUERIESPERHOUR和 MAXCONNECTIONSPERHOUR资源限制:
mysql> GRANT USAGE ON*.* TO'myuser'@'localhost' WITH MAX_QUERIES_PER_HOUR 30 MAX_CONNECTIONS_PER_HOUR 6;
验证用户的资源限制:
mysql> SHOW GRANTS FOR'myuser'@'localhost;
创建和设置一个MySQL用户最后的一个重要步骤:
mysql> FLUSH PRIVILEGES;
如此一来更改便生效了。现在MySQL用户帐号就可以使用了。
如何在sql server中新建数据库用户账户
2.2登录名
2.2.1登录名
登录名是服务器级别的一个实体,用于登录到 SQL Server实例。登录名的元数据保存在 master数据库的 syslogins表。
登录名包括以下2类:
(1) Windows登录
SQL Server将为 Windows帐户创建一个 SID。客户端在登录 SQL Server时使用的是 SQL Server的登录名,而不是 Windows帐户。当使用集成身份验证时,SQL Server会自动查询当前实例中是否存在对应的登录名,验证通过后才完成连接。
(2) SQL登录
如果 SQL Server实例处于混合身份验证模式,那么可以创建当前实例自有的登录名。
2.2.2新建 Windows登录
在 SSMS中展开“安全性”、“登录名”。在右键菜单中选择“新建登录名”。
默认的新建登录名是基于 Windows身份验证。单击“登录名”文本框右侧的“搜索”按钮,搜索一个用户或组。
在“选择用户或组”对话窗口,默认的“对象类型”只有“内置安全主体”和“用户”两类。可以单击“对象类型”按钮并需要添加“组”类型。
可以单击“位置”按钮,从而在本地计算机或域(以及受信任的域)中进行搜索 Windows对象。
在“输入要选择的对象名称”文本框中输入一个 Windows对象名称。建议单击“检查名称”按钮,检查对象名称是否存在。如果同时有多个对象的名称都匹配了输入的字符,则需要从弹出的选择窗口中选择其中的一个对象。
T-SQL语句示例如下:
USE [master]
GO
CREATE LOGIN [SQLSVR2014\LocalSqlUser] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
GO
最佳实践:
对于域帐户,建议从域级别使用 AGDLP策略可简化帐户管理。即使用 Windows身份验证,在域级别创建 Windows组(全局组、域本地组),然后在 SQL Server上为整个组创建登录名。
2.2.3新建 SQL登录
如果新建的登录名是基本 SQL Server身份验证,需要为新的登录名设置新的密码,同时为其指定密码策略。
密码策略有3个选项:
(1)强制实施密码策略
对 SQL Server登录名强制实施计算机的 Windows密码策略。这包括密码长度和密码复杂性。此功能仅在 Windows Server 2003和更高版本中提供。在数据库实例所在的计算机打开“管理工具”中的“本地安全策略”,依次展开“安全设置”“帐户策略”,然后单击“密码策略”,密码策略将在结果窗格中所示。
如果取消了“强制实施密码策略”,则“强制密码过期”和“用户在下次登录时必须更改密码”选项都不可用。
(2)强制密码过期
对 SQL Server登录名强制实施计算机的密码最长使用期限策略。
(3)用户在下次登录时必须更改密码
要求用户在下次连接时更改密码。更改密码的功能由 SSMS提供。如果启用了“用户在下次登录时必须更改密码”选项,则第三方软件开发人员应提供此功能。
新建 SQL登录名的 T-SQL语句示例如下:
USE [master]
GO
CREATE LOGIN [SqlUser1] WITH PASSWORD=N'Password123' MUST_CHANGE, DEFAULT_DATABASE=[master], CHECK_EXPIRATION=ON, CHECK_POLICY=ON
GO
2.2.4修改密码
对于 SQL登录名,可以在 SSMS中重置密码。
T-SQL语句示例如下:
USE [master]
GO
Alter Login [sa] with password='newpassword'
GO
如果指定旧密码,T-SQL语句示例如下:
USE [master]
GO
Alter Login [sa] with password='newpassword' old_password='oldpassword'
GO
可以使用 HASHED参数加密密码字符。
ALTER LOGIN [SqlUser1] WITH
PASSWORD= 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO
提示:
不推荐执行 sp_password存储过程修改密码。
2.2.5修改登录名的状态
状态包括了两类设置:是否允许连接到数据库引擎;是否已启用登录。
如果在安装过程中选择 Windows身份验证,则安装程序仍然会为 SQL Server身份验证创建 sa帐户,但会禁用该帐户。如果稍后更改为混合模式身份验证,则 sa登录名仍处于禁用状态。如果需要使用 sa帐户,则必须启用 sa登录名并分配一个新密码。
USE [master]
GO
ALTER LOGIN [sa] WITH PASSWORD='Password123'
GO
ALTER LOGIN [sa] ENABLE
GO
提示:
由于 sa帐户广为人知且经常成为恶意用户的攻击目标,因此除非应用程序需要使用 sa帐户,否则请勿启用该帐户。切勿为 sa帐户设置空密码或弱密码。
2.2.6解锁登录名
如果为SQL登录名启用了“强制密码策略”,可能会在某些场景中被锁住该登录名导致无法登录。
可以为该登录名在重设密码后再解锁。
ALTER LOGIN [SqlUser1] WITH PASSWORD='P@ssw0rd' UNLOCK;
GO
如果不需要更改密码,则可以通过关闭密码策略并再次打开的方法解锁该登录名。
ALTER LOGIN [SqlUser1] WITH CHECK_POLICY= OFF;
ALTER LOGIN [SqlUser1] WITH CHECK_POLICY= ON;
GO
2.2.7删除登录名
在 SSMS中可以直接删除某个登录名。在删除之前,请确保该登录名当前没有登录到数据库引擎,否则删除登录名失败。
T-SQL语句示例如下:
USE [master]
GO
DROP LOGIN [SqlUser1]
GO
2.4数据库用户
2.4.1数据库用户
用户是数据库级别的安全主体,用于对数据库对象进行授权。
登录名仅用于登录到 SQL Server实例,用户则是一个或多个登录名在数据库中的映射以便为登录名提供对数据库的访问。创建登录名时会默认将其映射为数据库的用户。
在安装 SQL Server后,数据库有以下4个默认的用户,不可以修改或删除这些默认的用户。
(1) dbo
通常 sa登录名、sysadmin角色的成员、数据库的拥有者被映射为 dbo用户。
(2) guest
数据库的 guest用户默认为 public服务器角色。仅允许登录到 SQL Server实例,但不能访问数据库。这个用户类似于 Windows的 everyone帐户。在用户数据库中,默认被禁用。如果为其授予 CONNECT权限,则可以启用 guest用户。
(3) INFORMATION_SCHEMA
在用户数据库中,默认被禁用。
(4) sys
在用户数据库中,默认被禁用。
2.4.2基于登录名的用户
最常见的用户是基于 master数据库中登录名的用户,有以下一些具体的类型。
(1)基于 Windows用户的登录名的用户。
(2)基于 Windows组的登录名的用户。
(3)基于 Windows组成员的登录名的用户。这类 Windows主体可以没有登录名,但可以通过 Windows组(包括嵌套的组)中的成员身份连接到数据库引擎。
(4)基于使用 SQL Server身份验证的登录名的用户。
通过 SSMS可以创建“Windows用户”(必须带登录名)或者“带登录名的 SQL用户”。
T-SQL语法示例如下:
CREATE USER [Domain1\WindowsUser1]
CREATE USER [Domain1\WindowsUserBarry] FOR LOGIN Domain1\WindowsUser1
CREATE USER [Domain1\WindowsGroupManagers]
CREATE USER [Domain1\WindowsGroupManagers] FOR LOGIN [Domain1\WindowsGroupManagers]
CREATE USER SQLAUTHLOGIN1
CREATE USER SQLAUTHLOGIN1 FOR LOGIN SQLAUTHLOGIN1
CREATE USER语句中, FOR子句与 FROM子句可以相互替代。以下语句具有相同的作用。
CREATE USER [Domain1\WindowsUser1] FOR LOGIN Domain1\WindowsUser1
CREATE USER [Domain1\WindowsUser1] FROM LOGIN Domain1\WindowsUser1
2.4.3包含数据库的用户
SQL Server 2012引入了包含数据库。在包含数据库中,可以直接在数据库级别进行身份验证(绕过服务器级别),而无需在服务器级别创建登录名。包括基于无登录名的“Windows用户”(或 Windows组用户)、“带密码的 SQL用户”。
T-SQL语法示例如下:
CREATE USER [Domain1\WindowsUser1]
CREATE USER [Domain1\WindowsGroupManagers]
CREATE USER DbUser1 WITH PASSWORD='Password123'
在创建此类用户时,不仅授予用户对当前数据库的访问权限,并且还将授予对数据库引擎的新访问权限。但是在登录到数据库引擎时必须指定连接的数据库名称,否则登录失败。例如,在 SSMS的“连接到服务器”对话窗口,必须单击“选项”按钮,然后在“连接属性”选项卡中为“连接到数据库”指定数据库名称。
oracle数据库怎么创建新用户
我们将从创建Oracle用户权限表开始谈起,然后讲解登陆等一般性动作,使大家对Oracle用户权限表有个深入的了解。
一、创建
sys;//系统管理员,拥有最高权限
system;//本地管理员,次高权限
scott;//普通用户,密码默认为tiger,默认未解锁
二、登陆
sqlplus/ as sysdba;//登陆sys帐户
sqlplus sys as sysdba;//同上
sqlplus scott/tiger;//登陆普通用户scott
三、管理用户
create user zhangsan;//在管理员帐户下,创建用户zhangsan
alert user scott identified by tiger;//修改密码
四,授予权限
1、默认的普通用户scott默认未解锁,不能进行那个使用,新建的用户也没有任何权限,必须授予权限
grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限
grant unlimited tablespace to zhangsan;//授予zhangsan用户使用表空间的权限
grant create table to zhangsan;//授予创建表的权限
grante drop table to zhangsan;//授予删除表的权限
grant insert table to zhangsan;//插入表的权限
grant update table to zhangsan;//修改表的权限
grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public)
2、oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权
grant select on tablename to zhangsan;//授予zhangsan用户查看指定表的权限
grant drop on tablename to zhangsan;//授予删除表的权限
grant insert on tablename to zhangsan;//授予插入的权限
grant update on tablename to zhangsan;//授予修改表的权限
grant insert(id) on tablename to zhangsan;
grant update(id) on tablename to zhangsan;//授予对指定表特定字段的插入和修改权限,注意,只能是insert和update
grant alert all table to zhangsan;//授予zhangsan用户alert任意表的权限
文章分享结束,创建数据库用户和如何给mysql数据库添加一个用户的答案你都知道了吗?欢迎再次光临本站哦!