首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | linux相关 | linux认证 | 下载中心 | 专题
oklinux
 系统管理:中文环境 系统管理 桌面应用 内核技术 Linux基础:安装配置 常用命令 经验技巧 软件应用 Linux数据库:Mysql POSTGRE
 网络管理:网络安全 网络应用 Linux服务器 编程开发:PHP CC++ Python Perl SHELL 嵌入式开发 | PHP基础 PHP技巧 PHP应用 PHP文摘
 首页 linux资讯动态 Linux专题 | 其他Unix Linux解决方案 硬件相关 Linux认证 企业应用 Apache | 相关下载:软路由 参考手册 开发工具
 → 当前位置:首页>linux数据库>mysql>正文

MySQL 存取權限系統

OKLinux www.oklinux.cn 2006-06-22 来源:oklinux收集整理 收藏本文

MySQL有一個先進但非標準的安全/權限系統。本節描述它的工作原理。

6.1 權限系統做什麼

MySQL權限系統的主要功能是証實連接到一台給定主機的一個用戶,並且賦予該用戶在一個資料庫上selectinsertupdatedelete的權限。

附加的功能包括有一個匿名的用戶和對於MySQL特定的功能例如LOAD DATA INFILE進行授權及管理操作的能力。

6.2 MySQL 用戶名和密碼

MySQL使用用戶名和密碼的方法與Unix或Windows使用的方式有很多不同之處:

  • MySQL使用於認証目的的用戶名,與Unix用戶名(登錄名字)或Windows用戶名無關。預設地,大多數MySQL客戶嘗試使用當前Unix用戶名作為MySQL用戶名登錄,但是這僅僅為了方便。客戶程式允許用-u--user選項指定一個不同的名字,這意味著無論如何你不能使得一個資料庫更安全,除非所有的MySQL用戶名都有密碼。任何人可以試圖用任何名字連接伺服器,而且如果他們指定了沒有密碼的任何名字,他們將成功。
  • MySQL用戶名最長可以是16各字符﹔典型地,Unix用戶名限制為8個字符。
  • MySQL密碼與Unix密碼沒關系。在你使用登錄到一台Unix機器密碼和你使用在那台機器上存取一個資料庫的密碼之間沒有必要有關聯。
  • MySQL加密密碼使用了一個Unix登錄期間所用的不同算法,見7.4.12 雜項函數一節中描述PASSWORD()ENCRYPT()函數部分。

6.3 與MySQL伺服器連接

當你想要存取一個MySQL伺服器時,MySQL客戶程式一般要求你指定連接參數:你想要聯接的主機、你的用戶名和你的密碼。例如,mysql客戶可以像這樣啟動(可選的參數被包括在“[”“]”之間):

shell> mysql [-h host_name][-u user_name][-pyour_pass ]

-h, -u-p選項的另一種形式是--host=host_name--user=user_name--password=your_pass。注意在-p--password=與跟隨它後面的密碼之間沒有空格

注意:在命令行上指定一個密碼是不安全的!隨後在你系統上的任何用戶可以通過打類似這樣的命令發現你的密碼:ps auxww。見4.15.4 選項文件

對於命令行沒有的聯接參數,mysql使用預設值:

  • 預設主機名是localhost
  • 預設用戶名是你的Unix登錄名。
  • 如果沒有-p,則沒有提供密碼。

這樣, 對一個Unix用戶joe,下列命令是等價的:

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

其它MySQL客戶程式有同樣表現。

在Unix系統上,當你進行一個連接時,你可以指定要使用的不同的預設值,這樣你不必每次在你調用一個客戶程式是在命令行上輸入他們。這可以有很多方法做到:

  • 你能在你的主目錄下“.my.cnf”的配置文件的[client]小節裡指定連接參數。文件的相關小節看上去可能像這樣:
    [client] 
    host=host_name 
    user=user_name 
    password=your_pass
    

    4.15.4 選項文件

  • 你可以用環境變數指定連接參數。主機可用MYSQL_HOST指定,MySQL用戶名字可用USER指定(僅對 Windows),密碼可用MYSQL_PWD指定(但是這不安全,見下一節) 。

如果連接參數以多種方法被指定,在命令行上被指定的值優先於在配置文件和環境變數中指定的值,而在配置文件指定的值優先於在環境變數指定的值。

6.4 使你的密碼安全

以一種暴露的可被其他用戶發現的方式指定你的密碼是不妥當的。當你咝锌蛻舫淌綍r,你可以使用下列方法指定你的密碼,還有每個方法的風險評估:

  • 使用一個在命令行上-pyour_pass--password=your_pass的選項。這很方便但是不安全,因為你的密碼對系統狀態程式(例如ps)變得可見,它可以被其他的用戶調用來顯示命令行。(一般MySQL客戶在他們的初始化順序期間用零覆蓋命令行參數,但是仍然有一個短暫間隔時間內參數值可見的。)
  • 使用一個-p--password選項(沒有指定your_pass值)。在這種情況下,客戶程式請求來自終端的密碼:
    shell>mysql - u  user_name - p
    Enter password: ********
    

    客戶回應“*”字符到作為輸入你的密碼的終端使得旁觀者不能看見它。因為它對其他用戶不可見,與在命令行上指定它相比,這樣進入你的密碼更安全。然而,這個輸入一個密碼的方法僅僅為你交互式咝谐淌绞呛线m的。如果你想要從非交互式咝械囊粋腳本調用一個客戶,就沒有從終端輸入入密碼的機會。

  • 在一個配置文件中儲存你的密碼。例如,你可你的主目錄的“.my.cnf”文件中的[client]節列出你的密碼:
    [client]
    password=your_pass
    

    如果你在“.my.cnf”裡面儲存密碼,文件應該不是組或世界可讀或可寫的。保証文件的存取模式是400600。見4.15.4 選項文件

  • 你可在MYSQL_PWD環境變數中儲存密碼,但是這個方法必須想到是極不安全的且應該不使用。ps的某些版本包括顯示咝羞M程的環境的選項﹔如果你設定MYSQL_PWD,你的密碼將對所有人是顯而易見的,甚至在沒有這樣一個版本的ps系統上,假設沒有其他方法觀察到進程環境是不明智的。

總之,最安全的方法是讓客戶程式提示密碼或在一個適當保護的“.my.cnf”文件中指定密碼。

6.5   MySQL提供的權限

權限資訊用userdbhosttables_privcolumns_priv表被儲存在mysql資料庫中(即在名為mysql的資料庫中)。在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 資料庫或表
references References_priv 資料庫或表
reload Reload_priv 伺服器管理
shutdown Shutdown_priv 伺服器管理
process Process_priv
上一篇:教你学会编写Linux设备驱动   下一篇:MySQL語言參考
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭

相关文章
·MySQL語言參考
·MySQL教學課程
·从MySQL导出XLS数据库工具
·mysql 4.1采用了新验证方法后的认证问题
·MySQL数据库安全配置
·MySQL数据库账户授权相关管理
·Linux下建立Mysql镜像数据库
·Mysql中mysqldump命令使用详解
·Mysql服务器的启动与停止(全)
·图形化管理MySQL更轻松
发表评论
密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。)
站内搜索
阅读排行榜
·Linux应用集成MySQL数据库
·MySQL运算符获得更多数据
·如何安全的远程使用MySQL
·MySQL学习笔记-MySQL的安
·MySQL运算符获得更多数据
·MySQL中的临时表使用方法
·ACCESS中使用SQL语句
·解决办法之MySQL忘记超级
·每天备份 mysql 数据库的
·在Linux 环境下安装 Mysql
最新文章
·针对MySQL和PostgreSQL两
·教你用PHP写MySQL数据库用
·MySQL数据库中备份/恢复的
·MySQL数据库中部分数据损
·MySQL数据库安全配置
·MySQL教學課程
·MySQL語言參考
·从MySQL导出XLS数据库工具
·mysql 4.1采用了新验证方
·Mysql中mysqldump命令使用
·Linux下建立Mysql镜像数据
·MySQL数据库账户授权相关
·Mysql服务器的启动与停止(
·图形化管理MySQL更轻松
·MySQL图形化管理软件安装

设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2007 All rights reserved OKLinux.Cn 版权所有
合作联系 QQ:18743986 Email:arlan8005#163.com