返回顶部
首页 > 资讯 > 数据库 >Mysql存取权限系统(转)
  • 308
分享到

Mysql存取权限系统(转)

2024-04-02 19:04:59 308人浏览 泡泡鱼
摘要

Mysql存取权限系统[@more@]mysql有一个高级的但不标准的存取权限系统.此部分即描述其如何工作. 权限系统做什么 Mysql的权限系统的主要功能是验证从假定主机来的用户连接.以及检查用 户对数据

Mysql存取权限系统[@more@]mysql有一个高级的但不标准的存取权限系统.此部分即描述其如何工作.

权限系统做什么

Mysql的权限系统的主要功能是验证从假定主机来的用户连接.以及检查用
户对数据库的select,insert,update和delete操作权限.

其附加功能还包括匿名用户验证及赋予权限以使用Mysql特殊的功能,如从
文件中装入数据和管理操作.

Mysql的用户名和口令

Mysql的用户名和口令在Unix和windows之间有一些差别:

·用户名,Mysql用于达到其验证目的.与Unix和Windows的用户名毫无干系
(login names).大多数的Mysql客户端缺省的使用Uinx当前用户名作为
Mysql用户名去登录,但那只是为了方便而已.客户端程序允许使用-u或--
user参数指定一个不同的名字.这意味着你不可能使Mysql数据库得到安全
保护除非每一个Mysql用户名都具有口令.任何人都可以用任何名字来企图
连接数据库,如果他们指定的某一个名字恰好没有口令,他们就会取得成功
.

·Mysql用户名可以提高到十六位字符长,而典型的Unix用户名都限制在八位
.

·Mysql的口令跟Unix口令毫无干系.不必把你登录进Unix机器的口令和你用
来在该机器上存取数据库的口令联系起来.

·Mysql使用了与Unix登录进程不同的加密算法.请参见7.3.11节各种函数中
对PASSWORD()和ENCRYPT()函数的描述.

6.3连接上Mysql服务器

Mysql客户端程序通常会让你指定一些连接参数,但你想存取Mysql数据库的时
候:你想连接的主机,你的用户名和口令.例如,Mysql客户端可以象这样开始(
可选参数被加上了"["和"]"):

shell> mysql [-h 主机名] [-u 用户名] [-p口令]

也可以用--host=主机名,--user=用户名和--passWord=口令来代替-h,-u和-p
选项.注意,在-p或--password和口令之间没有空格.

如果在命令行没有指定连接参数,Mysql将使用缺省值:

·缺省的主机名是localhost.
·缺省的用户名是你在Unix中的登录名.
·如果没有-p参数则将不提供口令.

因而,对于Unix用户Joe如下的命令是等价的

shell> mysql -h localhost -u joe
shell> mysql -h localhost
shell> mysql -u joe
shell> mysql

其它的客户端的动作与此类似.

在Unix系统中,你不必在每一次调用客户机程序进行连接的时候都在命令行敲入
所有选项,可以为它们指定不同的缺省值.这可以用两种方法来办到:

·你可以在你的home目录中的".my.cnf"配置文件中的[client]一节指定连接参
数.该文件的相关节看起来可能象这样:

[client]host=host_name
user=user_name
password=your_pass

请参见4.15.4选项文件一节
·你也可以使用环境变量来指定连接参数.主机可以被指定使用MYSQL_HOST,Mysql
用户名可以被指定使用USER,LOGNAME或是LOGIN(尽管这些变量可能已经被设置
成你的Unix登录名,但它们可能被任意改变).口令可以被指定为使用MYSQL_PWD(
但这是不安全的;参见下节)

如果通过多种不同的方法指定连接参数,那么在命令行中指定的值比在配置文件中
和环境变量中指定的值具有更高的优先权.而在配置文件中指定的值又比在环境变
量中指定的值具有更高的优先权.

使你的口令安全

在其它用户可以发现的情况下将你的口令用一种方法暴露的指定出来是相当失策的
.下面列出了当你使用客户端程序时可以用来指定密码的方法,比比较了每一种方法
的优劣:

·在命令行使用一个 -p密码 或 --password=密码 参数.这确很方便,但极不安全,
你密码能被系统状态检测程序看见(如ps),所以可以被其他用户调用出来显示在
命令行上.(MySQL客户端特别在命令行参数初始化时用0覆盖它们,但在该值显得
可见时仍有短暂的间隔).
·用一个-p或--password参数(不指定你的密码).这样,客户端程序会要求密码从终
端输入:

shell> mysql -u 用户名 -p]
Enter password: ********

客户端把你输入的密码以*"字符显示在终端上,以使旁观者无法看见.如此输入
密码比你在命令行上指定密码更安全,因为它对其他用户并不可见.但是,此输入
密码的方法只在你使用交互式程序时才有效.如果你想非交互的从一个脚本中调
用客户端,则没有机会从终端输入密码了.
·把你的密码保存在一个配置文件中.举例来说,你可以把你的密码列在你home目录
下的.my.cnf文件的[client]节:

[client]
password=your_pass

如果你把密码存放在.my.cnf中,那么同组用户和其他用户对该文件必须不能具
有读取和写入的权限.确定文件的存取模式必须为400或600.参见4.15.4节选项文
件.
·你也可以把你的密码存放在MYSQL_PWD环境变量中,但该方法被认为极不安全而通
常不被使用.某些版本的PS包括一个选项可以列出正在运行的进程的环境;你的密
码将被清楚的显示出来,如果你设置了MYSQL_PWD环境变量的话.

总而言之,最安全的方法是在客户端提示输入密码或将密码保存在受到正确保护的
.my.cnf文件中.

MySQL提供的权限

权限信息存放在mysql数据库(即数据库的名字叫mysql)的user, db, host, tables
_priv and columns_priv表中.当MySQL服务器在启动时或在6.9节"改变的权限何时
生效"指出的情况下读取这些表中的项目.

此手册所提及的MySQL提供的权限的名字列在其下,各列列出了权限的名字,对应的操
作和适用的范围.


权限 列名 范围
select select_priv 表
insert Insert_priv 表
update Update_priv 表
delete Delete_priv 表
index Index_priv 表
alter Alter_priv 表
create   Create_priv 数据库,表或索引
drop Drop_priv 数据库或表
grant Grant_priv 数据库或表
reload Reload_priv 服务器管理
shutdown Shutdown_priv 服务器管理
process Process_priv 服务器管理
file File_priv 服务器上文件存取

select, insert, update 和 delete 权限允许你在一个数据库中存在的表的行上执
行操作.

仅当你真要从表中返回行时SELECT表达式才需要select权限.你可以执行一个SELECT
表达式,甚至当你在服务器上没有存取任何数据库的权限时也行.比如,你可以用mysql
客户端作一个简单的计数:

mysql> SELECT 1+1;
mysql> SELECT PI()*2;

index权限允许你create或drop(删除)索引.

alter权限允许你使用ALTER TABLE.

create和drop权限允许你create新数据库和表,或drop(删除)存在的数据库和表.

注意,如果你允许一个用户拥有对mysql数据库的drop权限,那么该用户可以drop掉MySQL
用来存放存取权限的地方.

grant权限允许你授予其他用户你所拥有的那些权限.

file权限允许你用LOAD DATA INFILE 和 SELECT ... INTO OUTFILE语句存取服务器上
的文件.任何用户如果具有了这个权限他就可以存取任何MySQL服务器可以存取的文件.
剩下的权限用于管理操作,在执行mysqladmin程序时会用到.下表列出了mysqladmin命
令允许你执行的每一个管理权限:



权限 权限拥有者可以执行的操作
reload reload, refresh, flush-privileges, flush-hosts, flush-logs, flush-tables
shutdown shutdown
process processlist, kill

reload命令告诉服务器重新读取认证表.refresh命令刷新所有的数据库,打开和关闭日
志文件.flush-privileges是reload的一个同义词.其它flush-*执行和refresh大致相
同的功能,但是在更有限的范围内,也许在某些场合效果更好.例如,如果你仅想刷新日
志文件,flush-logs就是比refresh更好的选择.

shutdown命令关闭服务器.

processlist命令列出有关服务器中所执行的线程的信息.kill命令杀掉服务器的线程
.你通常只能列出和杀掉你自己的线程,但如果你有process权限就可以列出或杀掉由其
他用户启动的线程.

通常只授予相关用户一些必须权限是一个好办法,当你得学会小心谨慎的授出下列权限:

·grant权限允许用户把他们自己的权限授予另外一些用户.如果两个用户有不同的权
限,而又同时具有grant权限的话,那他们就共同具有了这所有的这些权限.
·alter权限拥有者可以用给表重命名的方式破坏权限系统.
·file权限些许会被滥用,以在数据库表中读取任何的全程文件,该项目可以使用SELECT
进行存取.
·shudown权限也可能被滥用.关闭服务器,对其他所有用户拒绝服务.
·process权限可以以纯文本的方式显示出当前正执行的查询,包含设置和修改密码的查
询.
·mysql数据库上的权限可以用来改变密码和其它存取权限信息.(密码是加密存储的,所
以一个有恶意的用户不能简单的读取它们.但是,如果有足够的权限,他可以把它改成另
一个不同的密码.)

通过MySQL权限系统无法实现下面一些事情:

·你不能明确的指定一个用户将被拒绝存取.也就是说,你不能明确指定匹配一个用户,拒
绝它的连接.
·你不能指定一个用户能在一个数据库中创建和删除表,而不能创建和删除该数据库自身.
您可能感兴趣的文档:

--结束END--

本文标题: Mysql存取权限系统(转)

本文链接: https://lsjlt.com/news/48209.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Mysql存取权限系统(转)
    Mysql存取权限系统[@more@]Mysql有一个高级的但不标准的存取权限系统.此部分即描述其如何工作. 权限系统做什么 Mysql的权限系统的主要功能是验证从假定主机来的用户连接.以及检查用 户对数据...
    99+
    2024-04-02
  • MySQL权限系统
    MySQL权 限系统 1)  设置口令 ...
    99+
    2024-04-02
  • MySQL权限系统简介
    1)          权限的授予与回收 方法一:MySQL 的权限系统相关权限信息主要存...
    99+
    2024-04-02
  • MySQL存取权限的应用技巧
    这篇文章主要讲解了“MySQL存取权限的应用技巧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL存取权限的应用技巧”吧!  MySQL使用于认证目的...
    99+
    2024-04-02
  • win10系统怎么获取trustedinstaller权限
    要获取TrustedInstaller权限,您可以按照以下步骤操作:1. 在键盘上按下Win + X键,并选择“Windows Po...
    99+
    2023-08-21
    Win10
  • win8系统怎么获取文件权限 win8系统手动获取文件权限图文教程
    部分用户询问小编win8系统怎么获取文件权限?在修改Win8系统时,修改数据文件会遭受系统拒绝,怎么回事呢?其实win8系统是为了安全起见,对文件有权限的限制。当win8系统文件权限不足,就无法访问设置了。...
    99+
    2022-06-04
    权限 文件 系统
  • Android10.0存取权限的问题
    这种本地图片地址: /storage/emulated/0/DCIM/Camera/IMG_20200316_091727.jpg 写和读的权...
    99+
    2022-06-06
    Android
  • 如何在win10系统中获取trustedinstaller权限
    本篇文章为大家展示了如何在win10系统中获取trustedinstaller权限,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。win10系统获取trustedinstaller权限的方法步骤:右击...
    99+
    2023-06-12
  • Android系统中使用shareuserid获取系统权限的教程
    Android会为每个apk进程分配一个单独的空间(比如只能访问/data/data/自己包名下面的文件),一般情况下apk之间是禁止相互访问数据的。通过Shared User...
    99+
    2022-06-06
    教程 Android
  • MySQL中权限系统的示例分析
    小编给大家分享一下MySQL中权限系统的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! create user...
    99+
    2024-04-02
  • XP系统中怎么设置用户存取磁盘文件的权限
    本篇内容主要讲解“XP系统中怎么设置用户存取磁盘文件的权限”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“XP系统中怎么设置用户存取磁盘文件的权限”吧!答:你可以尝试如下方法:以Administr...
    99+
    2023-06-14
  • 在Windows8系统中获取windowsapps权限的方法
      当我们想打开WindowsApps文件夹进行修改,却苦于没有权限不能做下一步的操作。现在小编跟大家分享一个Win8系统中获取windowsapps权限的简单操作方法。   当打开WindowsApps文...
    99+
    2022-06-04
    权限 方法 系统
  • linux系统chmod 755权限
    chmod 755意味着你给文件或目录设置了以下权限:- 所有者(Owner)具有读、写和执行权限- 所有者所在的组(Group)具...
    99+
    2023-09-28
    linux
  • 怎么在win10系统中获取管理员权限
    在win10系统中获取管理员权限的方法:1.打开本地组策略管理器;2.查找管理员账户状态选项;3.启用管理员状态即可;具体步骤如下:首先,在计算机中使用组合键“win+R”运行“gpedit.msc”,打开本地组策略管理器;进入到本地组策略...
    99+
    2024-04-02
  • Windows系统下获取SYSTEM权限设置的方法
    默认情况下,我们无法直接在登录对话框上以SYSTEM帐户的身份登录到Windows桌面环境。实际上SYSTEM帐户早就已经“盘踞”在系统中了。想想也是,连负责用户验证的Winlogon、Lsass...
    99+
    2023-06-03
    Windows 获取SYSTEM权限 方法 权限 系统 SYSTEM
  • mysql如何取消所有权限
    这篇文章主要介绍“mysql如何取消所有权限”,在日常操作中,相信很多人在mysql如何取消所有权限问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql如何取消所有权限”...
    99+
    2024-04-02
  • mysql如何取消用户权限
    本篇内容介绍了“mysql如何取消用户权限”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • mysql用户权限与安装Linux操作系统
    用户与权限:关于用户的创建:我们都知道安装数据库服务器的时候,一般默认的情况下只有一个root用户,但是在公司里一个数据库会有多个人使用,所以自然的一个数据库里需要有多个用户,并且在使用数据库的过程中处于安...
    99+
    2024-04-02
  • MySQL-存储过程权限报错
    存储过程建立者才拥有使用权,其他用户必须有以下权限才能使用 ``` GRANT SELECT ON `mysql`.`proc` TO 'wmsadmin'@'192.168.26.102' `...
    99+
    2024-04-02
  • Android简单实现动态权限获取相机权限及存储空间等多权限
    目录1.在Manifest中添加权限2.在MainActivity中添加动态获取权限函数1.在Manifest中添加权限 2022.5.20更新shouldShowRequestPe...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作