1. mysql 用户名和口令
* mysql使用于认证目的的用户名,与unix用户名(登录名字)或windows用户名无关。缺省地,大多数mysql客户尝试使用当前unix用户名作为mysql用户名登录,但是这仅仅为了方便,客户程序允许用-u或--user选项指定一个不同的名字。及与安全的考虑,所有的mysql用户名都应该有口令。
* mysql用户名最长可以是16各字符;典型地,unix用户名限制为8个字符。
* mysql口令与unix口令没关系。
* mysql加密口令使用了一个unix登录期间所用的不同算法,password()和encrypt()
函数password(str)
从纯文本口令str计算一个口令字符串。该函数被用于为了在user授权表的password列中存储口令而加密mysql口令。
mysql> select password('badpwd');
-> '7f84554057dd964b'
password()加密是非可逆的。password()不以与unix口令加密的相同的方法执行口令加密。你不应该假定如果你的unix 口令和你的mysql口令是一样的,password()将导致与在unix口令文件存储的相同的加密值。见encrypt()。
encrypt(str[,salt])
使用unix crypt()系统调用加密str。salt参数应该是一个有2个字符的字符串。(mysql 3.22.16中,salt可以长于2个字符。)
mysql> select encrypt("hello");
-> 'vxufajxvarroc'
如果crypt()在你的系统上不可用,encrypt()总是返回null。encrypt()只保留str起始8个字符而忽略所有其他,至少在某些系统上是这样。这将由底层的crypt()系统调用的行为决定。
1. 与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=与跟随它后面的口令之间没有空格。(在命令行上指定一个口令是不安全的!)
对于命令行没有的联接参数,mysql使用缺省值:
* 缺省主机名是localhost。
* 缺省用户名是你的unix登录名。
* 如果没有-p,则没有提供口令。
缺省值参数的指定:
在你的主目录下“.my.cnf”的配置文件的[client]小节里指定连接参数:
[client]
host=host_name
user=user_name
password=your_pass
注:命令行上被指定的值优先于在配置文件和环境变量中指定的值
最安全的方法是让客户程序提示口令或在一个适当保护的“.my.cnf”文件中指定口令。
1. mysql提供的权限
权限 列 上下文
select select_priv 表
insert insert_priv 表
update update_priv 表
delete delete_priv 表
index index_priv 表
alter alter_priv 表
create create_priv 数据库、表或索引
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器