1. 错误与字符集无关.
2. "非法权限"的话,Windows登录的用户,要有 ORA_DBA 的系统权限. 
乱码的解决方法:
    在$ORACLE_HOME\sysman\config目录下有一个配置文件名为dbappscfg.properties,找到这样一项,#SQLPLUS_NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1    
去掉注释符#,同时将其修改为SQLPLUS_NLS_LANG=AMERICAN_AMERICA.ZHS16GBK  
对于Windows操作系统,还需要修改一项,在文件中找到#  SQLPLUS_SYSTEMROOT=c:\\WINNT40,去掉注释符,将其修改为你所在机器的操作系统主目录。如操作系统的主目录在D盘的Winnt下,则将其修改为  SQLPLUS_SYSTEMROOT=d:\\WINNT。  
修改完成后,保存文件,退出编辑。重新连接SQL  PLUS  Worksheet,OK!