最近一直比较喜欢MySQL,当时是因为PHP,不过后来发现在linux下配置mysql也是件很不错的事情,再到后来通过网上资料配置成功Oracle9,当然了配置好了,我觉得还是应该仔细的去研究一下:
也许我们刚装上mysql,无论是在linux,还是在windows下,它的权限系统问题是我们首先应该接触的
MySQL权限系统的主要功能是证实连接到一台给定主机的一个用户,并且赋予该用户在一个数据库上select、 insert、update和delete的权限。
附加的功能包括有一个匿名的用户和对于MySQL特定的功能例如LOAD DATA INFILE
进行授权及管理操作的能力。
Mysql在安装成功后,默认的用户名是root,没有密码,当然了你自己可以在以后的学习过程中改掉它。
不过我还是先看了一下mysql与服务器的连接部分,如果安装完成,当然要试着进行一下连接了:
当你想要存取一个MySQL服务器时,MySQL客户程序一般要求你指定连接参数:你想要联接的主机、你的用户名和你的口令
shell>mysql [-h hostname] [-u username] [-ppassword]
其中-h, -u
和-p
选项的另一种形式是--host=host_name
、--user=user_name
和--password=your_pass
。注意在-p
或--password=
与跟随它后面的口令之间没有空格。
在命令行上指定一个口令是不安全的!随后在你系统上的任何用户可以通过打类似这样的命令发现你的口令:ps auxww
对于命令行没有的联接参数,mysql
使用缺省值:
- 缺省主机名是
localhost
。
- 缺省用户名是你的Unix登录名。
- 如果没有
-p
,则没有提供口令。
在Unix系统上,当你进行一个连接时,你可以指定要使用的不同的缺省值,这样你不必每次在你调用一个客户程序是在命令行上输入他们。这可以有很多方法做到:
-
你能在你的主目录下“.my.cnf”的配置文件的
[client]
小节里指定连接参数。文件的相关小节看上去可能像这样: [client]
host=host_name
user=user_name
password=your_pass
-
口令的安全性问题:以一种暴露的可被其他用户发现的方式指定你的口令是不妥当的。当你运行客户程序时,你可以使用下列方法指定你的口令,还有每个方法的风险评估:
- 使用一个在命令行上
-pyour_pass
或--password=your_pass
的选项。这很方便但是不安全,因为你的口令对系统状态程序(例如ps
)变得可见,它可以被其他的用户调用来显示命令行。(一般MySQL客户在他们的初始化顺序期间用零覆盖命令行参数,但是仍然有一个短暂间隔时间内参数值可见的。)
- 使用一
个-p
或--password
选项(没有指定your_pass
值)。在这种情况下,客户程序请求来自终端的口令: shell>mysql - u user_name - p
Enter password: ********
客户回应“*”字符到作为输入你的口令的终端使得旁观者不能看见它。因为它对其他用户不可见,与在命令行上指定它相比,这样进入你的口令更安全。然而,这个输入一个口令的方法仅仅为你交互式运行程序是合适的。如果你想要从非交互式运行的一个脚本调用一个客户,就没有从终端输入入口令的机会。
-
在一个配置文件中存储你的口令。例如,你可你的主目录的“.my.cnf”文件中的
[client]
节列出你的口令: [client]
password=your_pass
如果你在“.my.cnf”里面存储口令,文件应该不是组或世界可读或可写的。保证文件的存取模式是400
或600
。见4.15.4 选项文件。
- 你可在
MYSQL_PWD
环境变量中存储口令,但是这个方法必须想到是极不安全的且应该不使用。ps
的某些版本包括显示运行进程的环境的选项;如果你设定MYSQL_PWD
,你的口令将对所有人是显而易见的,甚至在没有这样一个版本的ps
系统上,假设没有其他方法观察到进程环境是不明智的。
总之,最安全的方法是让客户程序提示口令或在一个适当保护的“.my.cnf”文件中指定口令
posted on 2006-09-08 15:51
水煮三国 阅读(226)
评论(0) 编辑 收藏 所属分类:
Sybase