我是Oracle新手,想练习SQL。
我下载了适用于Windows x64的Application Express Edition 11g。我按照说明创建了工作区和用户。
但是,当我尝试创建表时,出现错误消息“ ORA-20000:用户xxx在架构上没有特权。错误检查特权。
但是,当我去查看管理中的用户时,却说我是工作区管理员。我似乎也无法使用安装时创建的密码以SYSTEM或SYS身份登录。
我很困惑。
答案 0 :(得分:4)
您要处理两个术语:
当您安装11g XE数据库(它具有内置的Apex版本4.x,我认为-它不是Apex 11g,它不存在)时,在操作系统命令提示符下运行SQL * Plus并进行连接作为SYS:
C:\>sqlplus sys@xe as sysdba
SQL*Plus: Release 11.2.0.2.0 Production on Sub Lis 6 20:26:19 2018
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL>
列出数据库中的用户:
SQL> select username, account_status from dba_users order by username;
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
ANONYMOUS OPEN
APEX_PUBLIC_USER LOCKED
APEX_040000 LOCKED
APPQOSSYS EXPIRED & LOCKED
CTXSYS EXPIRED & LOCKED
DBSNMP EXPIRED & LOCKED
DIP EXPIRED & LOCKED
FLOWS_FILES LOCKED
HR LOCKED
IMPORTER OPEN
MDSYS EXPIRED & LOCKED
MIKE OPEN
ORACLE_OCM EXPIRED & LOCKED
OUTLN EXPIRED & LOCKED
SCOTT OPEN
SYS OPEN
SYSTEM OPEN
XDB EXPIRED & LOCKED
XS$NULL EXPIRED & LOCKED
19 rows selected.
SQL>
看到HR(人力资源)用户吗?已锁定。我们将其解锁并更改其密码(更改为“ hr”),以便您可以在Apex中使用它,因为它已经包含了几张充满数据的表。
SQL> alter user hr account unlock;
User altered.
SQL> alter user hr identified by hr;
User altered.
SQL>
以HR身份连接,只是要查看其中包含的内容:
SQL> connect hr/hr@xe
Connected.
SQL> select * From tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
COUNTRIES TABLE
DEPARTMENTS TABLE
DEPT TABLE
EMPLOYEES TABLE
EMP_DETAILS_VIEW VIEW
INSTRUCTOR TABLE
JOBS TABLE
JOB_HISTORY TABLE
LOCATIONS TABLE
PRODUCT TABLE
REGIONS TABLE
RIGHTS TABLE
TEACHES TABLE
USERS TABLE
14 rows selected.
SQL>
如果要创建自己的表,请在HR模式中进行。就像我说的那样,不要理会SYS和SYSTEM。它们很特别,您不会将它们用于日常用途。如果您执行不正常的操作,则可能会破坏数据库。
好;现在运行Apex,以管理员身份连接,导航到“管理工作区”,然后:
完成后,以新创建的用户身份退出admin并登录-提供工作区名称,用户名和密码-应该允许您进入。进入Apex后-作为开发人员-您可以创建第一页(交互式报告可能是一个不错的选择)。
祝你好运!
[编辑:11gXE上的内置Apex]
alter user hr identified by hr
)如果要查看已经存在的工作空间,请以SYS身份连接到数据库(在操作系统命令提示符下使用SQLPlus):
C:\>sqlplus sys@xe as sysdba
SQL*Plus: Release 11.2.0.2.0 Production on Ned Lis 7 12:40:34 2018
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
SQL> select * from all_users where username like 'APEX%';
USERNAME USER_ID CREATED
------------------------------ ---------- --------
APEX_040000 47 29.05.14
APEX_PUBLIC_USER 45 29.05.14
SQL> -- describe table that contains info about workspaces
SQL> desc apex_040000.apex_workspaces
Name Null? Type
----------------------------------------- -------- ----------------------------
WORKSPACE NOT NULL VARCHAR2(255)
SOURCE_IDENTIFIER VARCHAR2(8)
SCHEMAS NUMBER
LAST_PURGED_SESSION DATE
ALLOW_APP_BUILDING_YN VARCHAR2(1)
ALLOW_SQL_WORKSHOP_YN VARCHAR2(1)
ALLOW_WEBSHEET_DEV_YN VARCHAR2(1)
ALLOW_TEAM_DEVELOPMENT_YN VARCHAR2(1)
ALLOW_TO_BE_PURGED_YN VARCHAR2(1)
SESSIONS NUMBER
APPLICATIONS NUMBER
APPLICATION_PAGES NUMBER
APEX_USERS NUMBER
APEX_DEVELOPERS NUMBER
APEX_WORKSPACE_ADMINISTRATORS NUMBER
FILES NUMBER
SQL_SCRIPTS NUMBER
TRANSLATION_MESSAGES NUMBER
FILE_STORAGE NUMBER
LAST_LOGGED_PAGE_VIEW DATE
PAGE_VIEWS NUMBER
WORKSPACE_ID NOT NULL NUMBER
SQL> col workspace format a10
SQL> select workspace, source_identifier, apex_developers
2 from apex_040000.apex_workspaces;
WORKSPACE SOURCE_I APEX_DEVELOPERS
---------- -------- ---------------
HR HR 1
INTERNAL 0
SQL>
如果HR工作空间已经包含,则意味着您已经创建了它。
在Web浏览器中,以管理员身份连接(使用地址http://127.0.0.1:8080/apex/apex_admin)。 (工作区名称是“内部”;您不必输入它)。用户名= admin,密码= ...呵呵,不确定。尝试SYS密码。如果无法连接,则可以更改该密码。在磁盘上找到名为APXCHPWD.SQL的文件(“ Apex更改密码”);例如,它将位于C:\ oraclexe \ app \ oracle \ product \ 11.2.0 \ server \ apex \ apxchpwd.sql目录中。在以SYS连接的SQLPlus中,执行该文件:
SQL> show user
USER is "SYS"
SQL> @C:\oraclexe\app\oracle\product\11.2.0\server\apex\apxchpwd.sql
Enter a value below for the password for the Application Express ADMIN user.
Enter a password for the ADMIN user []
Session altered.
...changing password for ADMIN
PL/SQL procedure successfully completed.
Commit complete.
SQL>
管理员现在将拥有您刚刚输入的密码,因此-回到Apex管理员,进行连接;您必须更改该密码-这样做,然后再次连接。
您现在将看到“管理工作区”按钮。在那里,有许多链接可以执行 stuff 。如果需要,您可以删除HR工作区(单击“删除工作区”链接之后),然后重新创建它。
下一步是创建开发人员-使用“管理开发人员和用户”链接。完成此操作后,您应该能够以开发人员身份使用“ HR”作为工作区名称,开发人员用户名和密码作为凭据登录到Apex。
为了能够同时将Apex调整为 admin 并以开发人员身份进行连接,请使用不同的浏览器(例如,一件事是Chrome)打开新的连接,另一种是Internet Explorer)-如果您使用相同的浏览器(但使用不同的标签,甚至完全是新的浏览器会话),则将无法正常工作-新的连接会终止上一个连接。
我希望以上内容能帮助您入门。
显然,内置的Apex版本是4.0.2(相当古老的版本,至少5-6年),但是会在一开始就使用。升级到最新版本并不困难-下载它并运行SQL文件即可为您完成所有工作。只需遵循安装指南即可。
我还建议您阅读并遵循《 4.0 Apex用户指南》,这样就不必在此处创建有关Stack Overflow的教程了:)