在MySQL中修改用户的语法如下:
看了这么一大坨东西,感觉啥也没有告诉我,一脸懵逼。下面我们一起来解读一下具体的每一个选项的含义。
对于这个大家应该有所了解。
首先它是被中括号包裹起来的,表示是可选的不是必须的,也就是说在我们的 alter user 语句中,这个 IF EXISTS 可以不出现不是必须要写的。但是为什么还要有这个呢,这个选项出现的目的是为了让你在执行一个 alter user 语句的时候,如果语句中指定的数据库用户不存在(或者你写用户名称的是写错了),而不至于出现一个错误的信息,如果指定了 IF EXISTS 这个词,他就会以一个警告的信息提示你而不是直接给你一个错误信息。
更直白一下就是:如果你的 alter user 的语句中指定的用户确实存在,那么就执行你的语句,如果不存在呢,就不执行你的语句,跳过这个 alter user 的指令。看示例:
在上面的例子中,第一个修改用户的语句,没有使用 if exists 关键词直接修改了一个不存在的用户的信息,结果直接出现了错误信息,接着我们使用了 if exists 关键词,结果SQL语句执行成功,只是出现了一个 warning 警告,然后我们通过 show warnings 命令查看警告信息的内容,提示我们用户 'zhangsanfeng'@'%' 不存在。这就是 if exists 关键词的存在的意义。
当我们修改一个用户的信息的时候,我们需要指定用户的名称。这个名称,不仅仅使我们平时登录数据库的时候,输入的用户的名字,还有一个隐含的部分就是用户登录的 host 网段,这个网段表示只允许该用户通过这个网段登录,如果用户不在这个定义的网段内,即便是用户名和密码正确,也不能争取的登录。
下面的创建用户是两个不同的用户。
上面的两个用户中,分别表示如下:
当然,我们可以使用模糊匹配的方式来限定用户登录的网段,比如我们创建下面第一个用户表示只要这个用户登录的时候,使用的主机的IP地址是在 101000~1010255255 这个网段质检的任何一个IP地址都可以登录。
特殊的网段 localhost 。如果我们创建如下的用户,则表示该用户只能在 MySQL 数据库所在的服务器本机上登录。
还有另外一个特殊的网段 % 。它表示用户可以通过任何一个IP地址来登录,不对用户登录的主机所在的网段做任何限制。如下用户就是不对它登录的主机IP地址做任何限制。
auth_option 选项的含义表示指定用户登录数据库的时候使用的验证插件和密码。它的选项有如下几种,下面我们分别展开分析一下各个选项的使用场景和示例。
如果在 IDENTIFIED 关键字后面没有使用 WITH 关键字指定使用的密码插件名称,则会使用 MySQL 默认的密码插件。对于 MySQL 默认的密码插件是什么,可以使用下面的命令进行查看:
通过上面的输出,我们可以看出默认的密码插件采用的是 mysql_native_password 插件,参数 default_authentication_plugin 的值是可以在 MySQL 的配置文件 mycnf 中指定的,它可以有以下两种取值:
MySQL 的配置文件 mycnf 中配置默认的密码认证插件的方式如下:
如果我们要修改某一个用户的密码认证插件,就可以使用到 IDENTIFIED WITH auth_plugin 这个语句了。如果一个用户它的密码认证插件使用的是默认的 mysql_native_password ,我们想把它的密码认证插件修改为 sha256_password ,此时我们就可以使用下面的命令来修改:
执行完成上述命令后, xyz 这个用户的密码就会设置为空,并更新它的密码为已经过期,同时更新了它的密码认证插件为 sha256_password ,结果如下所示:
更改用户的密码认知方式之后,当 xyz 再次尝试登录 MySQL 数据库的时候,输入空密码登录成功后,会要求其修改一下自己的密码,然后才可以执行其他SQL语句的 *** 作,这个要求和我们刚安装 MySQL 数据库后,第一次使用 root 登录的时候要求修改 root 的密码是一样的。下面是修改完成用户 xyz 的密码认证插件之后,尝试使用空密码登录后的 *** 作示例:
指定用户的密码认证插件,并设置密码。
当我们想给用户指定密码的认证插件,并且想为其设置密码的时候,可以使用这个命令,示例如下:
这样用户 xyz 的密码认证方式修改为了 mysql_native_password ,并且修改它的密码为 xyz 。需要我们主要的是 by 关键字后面跟的是密码的明文,也就是我们尝试登录的时候,输入的密码的值。
指定用户的密码认证插件,并设置密码。
当我们想给用户指定密码的认证插件,并且想为其设置密码的时候,可以使用这个命令,示例如下:
这样用户 xyz 的密码认证方式修改为了 mysql_native_password ,并且修改它的密码为 xyz 。需要我们主要的是 as 关键字后面跟的是加密后的密码,而不是我们的明文的密码。如果我们想知道得到一个加密后的密码,则可以使用下面 password() 函数来得到加密后的密码。
这里主要是指定用户在连接到MySQL数据库的时候,是否需要使用加密的方式,如果使用加密的方式,则需要启用SSL加密协议,同时也需要对MySQL进行证书的配置。
考虑到性能的问题,使用TLS加密的方式连接MySQL数据库会对MySQL数据库的性能有一定的影响。非必要情况下,一般不建议启用TLS加密连接到数据库,因为大家的MySQL数据库一般都是针对内网开放的。所以,启用TLS加密协议连接没有必要。
resource_option 选项中,主要是为每一个用户设置它所能使用到资源,做资源的使用限制。示例如下:
上面四个参数的值如果为 0 ,则表示对应的资源限制不做任何限制。
password_option 选项用来配置用户的密码,指定其密码的效期。下面看几个示例:
对于MySQL系统默认的有效期是多少,可以通过如下命令查看,下面的值为 0 表示密码有效期为永久有效。
lock_option 选择是用来锁定和解锁用户的。示例如下:
开始~运行,输入:regedit,进入local machine/software/Microsoft/mssql/mssql sever找到Loginmode,把值改为2,重启电脑,进入C:/Windows/system32/kiscom,找到installdbexe,点击它,恢复演示帐套。如果你找不到Loginmode,那应该是你安装的SQL为desktop engine,建议你完整卸载SQL和金蝶后重新安装SQL和金蝶。一定要卸载干净。
SQL Server 组 --> local -->右键属性-->安全性选项卡-->更改为SQL Server 和 Windows(s)-->确定
OK了
Oracle *** 作系统认证方式
在Oracle数据库系统中,用户如果要以特权用户身份(INTERNAL/SYSDBA/SYSOPER)登录Oracle数据库可以有两种身份验证的方法: 即使用与 *** 作系统集成的身份验证或使用Oracle数据库的密码文件进行身份验证。因此,管理好密码文件,对于控制授权用户从远端或本机登录Oracle数据库系统,执行数据库管理工作,具有重要的意义。 Oracle数据库的密码文件存放有超级用户INTERNAL/SYS的口令及其他特权用户的用户名/口令,它一般存放在ORACLE_HOME\DATABASE目录下。
一、 密码文件的创建:
在使用Oracle Instance Manager创建一数据库实例的时侯,在ORACLE_HOME\DATABASE目录下还自动创建了一个与之对应的密码文件,文件名为PWDSIDORA,其中SID代表相应的Oracle数据库系统标识符。此密码文件是进行初始数据库管理工作的基础。在此之后,管理员也可以根 据需要,使用工具ORAPWDEXE手工创建密码文件,命令格式如下: C:\ >ORAPWD FILE=< FILENAME > PASSWORD =< PASSWORD >ENTRIES=< MAX_USERS >
各命令参数的含义为:
FILENAME:密码文件名;
PASSWORD:设置INTERNAL/SYS帐号的口令;
MAX_USERS:密码文件中可以存放的最大用户数,对应于允许以SYSDBA/SYSOPER权限登录数据库的最大用户数。由于在以后的维护中,若 用户数超出了此限制,则需要重建密码文件,所以此参数可以根据需要设置得大一些。有了密码文件之后,需要设置初始化参数REMOTE_LOGIN_PASSWORDFILE来控制密码文件的使用状态。
二、 设置初始化参数REMOTE_LOGIN_PASSWORDFILE:
在Oracle数据库实例的初始化参数文件中,此参数控制着密码文件的使用及其状态。它可以有以下几个选项: NONE:指示Oracle系统不使用密码文件,特权用户的登录通过 *** 作系统进行身份验证; EXCLUSIVE:指示只有一个数据库实例可以使用此密码文件。只有在此设置下的密码文件可以包含有除INTERNAL/SYS以外的用户信息,即允许将系统权限SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用户。 SHARED:指示可有多个数据库实例可以使用此密码文件。在此设置下只有INTERNAL/SYS帐号能被密码文件识别,即使文件中存有其他用户的信息,也不允许他们以SYSOPER/SYSDBA的权限登录。此设置为缺省值。在REMOTE_LOGIN_PASSWORDFILE参数设置为EXCLUSIVE、SHARED情况下,Oracle系统搜索密码文件的次序为: 在系统注册库中查找ORA_SID_PWFILE参数值(它为密码文件的全路径名); 若未找到,则查找ORA_PWFILE参数值;若仍未找到,则使用缺省值ORACLE_HOMEDATABASE\PWDSIDORA;其中的SID代表相应的Oracle数据库系统标识符。
三、 向密码文件中增加、删除用户:
当初始化参数REMOTE_LOGIN_PASSWORDFILE设置为EXCLUSIVE时,系统允许除INTERNAL/SYS以外的其他用户以管理员身份从远端或本机登录 到Oracle数据库系统,执行数据库管理工作;这些用户名必须存在于密码文件中,系统才能识别他们。由于不管是在创建数据库实例时自动创建的密码文件,还是使用工具ORAPWDEXE手工创建的密码文件,都只包含INTERNAL/SYS用户的信息;为此,在实际 *** 作中,可能需要向密码文 件添加或删除其他用户帐号。
由于仅被授予SYSOPER/SYSDBA系统权限的用户才存在于密码文件中,所以当向某一用户授予或收回SYSOPER/SYSDBA系统权限时,他们的 帐号也将相应地被加入到密码文件或从密码文件中删除。由此,向密码文件中增加或删除某一用户,实际上也就是对某一用户授予或收回 SYSOPER/SYSDBA系统权限。
要进行此项授权 *** 作,需使用SYSDBA权限(或INTERNAL帐号)连入数据库,且初始化参数REMOTE_LOGIN_PASSWORDFILE的设置必须为 EXCLUSIVE。具体 *** 作步骤如下:创建相应的密码文件; 设置初始化参数REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE; 使用SYSDBA权限登录: CONNECT SYS/internal_user_passsword AS SYSDBA; 启动数据库实例并打开数据库; 创建相应用户帐号,对其授权(包括SYSOPER和SYSDBA): 授予权限:GRANT SYSDBA TO user_name; 收回权限:REVOKE SYSDBA FROM user_name;现在这些用户可以以管理员身份登录数据库系统了;
四、 使用密码文件登录:
有了密码文件后,用户就可以使用密码文件以SYSOPER/SYSDBA权限登录Oracle数据库实例了,注意初始化参数 REMOTE_LOGIN_PASSWORDFILE应设置为EXCLUSIVE或SHARED。任何用户以SYSOPER/SYSDBA的权限登录后,将位于SYS用户的Schema之下,以下为 两个登录的例子:
1 以管理员身份登录:
假设用户scott已被授予SYSDBA权限,则他可以使用以下命令登录:
CONNECT scott/tiger AS SYSDBA
2 以INTERNAL身份登录:
CONNECT INTERNAL/INTERNAL_PASSWORD
五、 密码文件的维护:
1 查看密码文件中的成员:
可以通过查询视图V$PWFILE_USERS来获取拥有SYSOPER/SYSDBA系统权限的用户的信息,表中SYSOPER/SYSDBA列的取值TRUE/FALSE表示此用户是否拥有相应的权限。这些用户也就是相应地存在于密码文件中的成员。
2 扩展密码文件的用户数量:
当向密码文件添加的帐号数目超过创建密码文件时所定的限制(即ORAPWDEXE工具的MAX_USERS参数)时,为扩展密码文件的用户数限制,需重建密码文件,具体步骤如下: a) 查询视图V$PWFILE_USERS,记录下拥有SYSOPER/SYSDBA系统权限的'用户信息; b) 关闭数据库; c) 删除密码文件; d) 用ORAPWDEXE新建一密码文件; e) 将步骤a中获取的用户添加到密码文件中。
3 修改密码文件的状态:
密码文件的状态信息存放于此文件中,当它被创建时,它的缺省状态为SHARED。可以通过改变初始化参数REMOTE_LOGIN_PASSWORDFILE的设置改变密码文件的状态。当启动数据库事例时,Oracle系统从初始化参数文件中读取REMOTE_LOGIN_PASSWORDFILE参数的设置;当加载数据库 时,系统将此参数与口令文件的状态进行比较,如果不同,则更新密码文件的状态。若计划允许从多台客户机上启动数据库实例,由于各客户机上必须有初始化参数文件,所以应确保各客户机上的初始化参数文件的一致性,以避免意外地改变了密码文件的状态,造成数据库登陆的失 败。
4 修改密码文件的存储位置:
密码文件的存放位置可以根据需要进行移动,但作此修改后,应相应修改系统注册库有关指向密码文件存放位置的参数或环境变量的设置
5 删除密码文件:
在删除密码文件前,应确保当前运行的各数据库实例的初始化参数REMOTE_LOGIN_PASSWORDFILE皆设置为NONE。在删除密码文件后,若想要以管理员身份连入数据库的话,则必须使用 *** 作系统验证的方法进行登录。
;1、jsp是java服务端动态网页技术,主要应用于网页构建,理论上讲不应该在页面中直接连数据库。合理的做法是先构建一个java后端,然后在JAVA后端中通过jdbc连接sqlserver。
2、如果一定要在jsp页面中连数据库也是可以的。jsp中有专门的sql标签可以连接数据库进行 *** 作,这是jstl的内容,需要导入相应的数据库驱动包。
3、jsp的内容相对来说都还是比较简单,没有特别大的技术难度。
4、希望对你有帮助。
以上就是关于MySQL中如何修改用户各种信息全部的内容,包括:MySQL中如何修改用户各种信息、重装金蝶专业版打开帐套管理时出现数据库身份验证模式应改为混合验证模式怎么解决啊急急急.....、sqlserver 2000 如何将windows本地验证改为 数据库用户验证等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)