加密文件好像是不可以的,你看看mysql的文当中有关于安全的论述阿

解决方案 »

  1.   

    使用一个在命令行上-pyour_pass或--password=your_pass的选项。这很方便但是不安全,因为你的口令对系统状态程序(例如ps)变得可见,它可以被其他的用户调用来显示命令行,
    使用一个-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系统上,假设没有其他方法观察到进程环境是不明智的。 
      

  2.   

    现在就是有这样一个问题在本机的mysql上我如果把root设置密码后,确实能起到作用但我如果这样做:
    1.机器A mysql root密码不为空
    2.把机器A上%mysql%/data/某个数据库名/*.frm所有文件 copy到机器B 相同目录下
    3.把机器A上%mysql%/data/ibdata1文件 copy到机器B 相同目录下
    4.机器B上也装了一个mysql,root密码是空的
    5.这样,我就可以在机器B上运行mysql ,登陆后,可以看到刚才copy过来的数据库的所有表以及数据了我也试了下MS Sql server的,
    把 机器A data/XX.MDF,XX.LDF copy到 机器B
    然后在机器B上附加数据库,ok了,可以附加,表结构和里面的数据都可见了谢谢大家了,等候回复想知道,怎么样解决这样的安全问题,还是本来就这样的,不需要我们过多的考虑
      

  3.   

    你要把这个访问数据目录的用户,在WINDOWS系统里的权限降低,把他的读取权限取消,应该就可以避免了。
      

  4.   

    楼上,那是不可能的,怎么可以对客户机器设置权限呢upup