我想通过从 Unix 脚本运行 SQL 文件来登录数据库,而无需提供用户名和密码(以 root 身份)。这可能吗?
数据库是Oracle。
答案1
您可以将数据库用户定义为经过操作系统认证的用户。Tim Hall 的 Oracle_Base站点上有关于如何执行此操作的很好的入门指南。您不需要允许人们使用 SYSDBA 权限登录,否则将导致灾难。
答案2
如果您的用户属于 oracle 组,他可以以 SYSDBA 身份连接。
Unix 环境下的示例:
$ export ORACLE_SID=MYDB
$ sqlplus /nolog
SQL*Plus: Release...
SP2-0640: Not connected
sql> connect / as sysdba
Connected
SQL> select * from scott.employees ;
对于一批来说,这可能有点过度了(除了您拥有搞砸数据库的所有权限之外)。
然而据我所知,这是唯一的选择。
更新 根据 DCookie 的回答,这不是唯一的方法。正如我已经提到并由 DCookie 强调的那样,这是一条非常危险的道路。
答案3
启动 SQL*Plus 时,您需要用户名和密码才能登录 Oracle 数据库模式。您的用户名和密码表明您是 Oracle 数据库模式的授权用户。
数据库管理员 (DBA) 负责创建具有必要权限的数据库帐户,并为您提供使您能够访问帐户的用户名和密码。
答案4
如果使用 PostgreSQL,那么您可以在“pg_hba.conf”文件中为本地主机网络指定“信任”方法。对于 MySQL 可能有类似的东西,我不确定(如果不是 PostgreSQL,希望这里有熟悉您使用的数据库的人可以提供帮助)。