Error accessing PRODUCT_USER_PROFILE?

本文介绍了解决Oracle数据库中新建用户后登录时遇到ErroraccessingPRODUCT_USER_PROFILE警告的方法。通过执行pupbld.sql脚本可以正常登录并解决此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有客户发邮件来表示新建user后,尝试使用该user登录时sqlplus会出现如下警告:
Error accessing PRODUCT_USER_PROFILE
Warning:  Product user profile information not loaded!
You may need to run PUPBLD.SQL as SYSTEM
PRODUCT_USER_PROFILE是Oracle 10g中一个用来显示记录那些不希望用户可以在sqlplus执行命令的权限表,该表一般会在数据库创建时在system模式下被建立;显然用户的这个数据库可能是以手工创建数据库的方式create出来的,而在最后执行脚本的阶段没有执行建立该表的pupbld.sql脚本,该脚本一般位于$ORACLE_HOME/sqlplus/admin目录下:
[maclean@rh2 admin]$ pwd
/s01/10gdb/sqlplus/admin

[maclean@rh2 admin]$ cat pupbld.sql
--
-- Copyright (c) Oracle Corporation 1988, 2003.  All Rights Reserved.
--
-- NAME
--   pupbld.sql
--
-- DESCRIPTION
--   Script to install the SQL*Plus PRODUCT_USER_PROFILE tables.  These
--   tables allow SQL*Plus to disable commands per user.  The tables
--   are used only by SQL*Plus and do not affect other client tools
--   that access the database.  Refer to the SQL*Plus manual for table
--   usage information.
--
--   This script should be run on every database that SQL*Plus connects
--   to, even if the tables are not used to restrict commands.

-- USAGE
--   sqlplus system/ @pupbld
--
--   Connect as SYSTEM before running this script

-- If PRODUCT_USER_PROFILE exists, use its values and drop it

DROP SYNONYM PRODUCT_USER_PROFILE;

CREATE TABLE SQLPLUS_PRODUCT_PROFILE AS
  SELECT PRODUCT, USERID, ATTRIBUTE, SCOPE, NUMERIC_VALUE, CHAR_VALUE,
  DATE_VALUE FROM PRODUCT_USER_PROFILE;

DROP TABLE PRODUCT_USER_PROFILE;
ALTER TABLE SQLPLUS_PRODUCT_PROFILE ADD (LONG_VALUE LONG);

-- Create SQLPLUS_PRODUCT_PROFILE from scratch

CREATE TABLE SQLPLUS_PRODUCT_PROFILE
(
  PRODUCT        VARCHAR2 (30) NOT NULL,
  USERID         VARCHAR2 (30),
  ATTRIBUTE      VARCHAR2 (240),
  SCOPE          VARCHAR2 (240),
  NUMERIC_VALUE  DECIMAL (15,2),
  CHAR_VALUE     VARCHAR2 (240),
  DATE_VALUE     DATE,
  LONG_VALUE     LONG
);

-- Remove SQL*Plus V3 name for sqlplus_product_profile

DROP TABLE PRODUCT_PROFILE;

-- Create the view PRODUCT_PRIVS and grant access to that

DROP VIEW PRODUCT_PRIVS;
CREATE VIEW PRODUCT_PRIVS AS
  SELECT PRODUCT, USERID, ATTRIBUTE, SCOPE,
         NUMERIC_VALUE, CHAR_VALUE, DATE_VALUE, LONG_VALUE
  FROM SQLPLUS_PRODUCT_PROFILE
  WHERE USERID = 'PUBLIC' OR USER LIKE USERID;

GRANT SELECT ON PRODUCT_PRIVS TO PUBLIC;
DROP PUBLIC SYNONYM PRODUCT_PROFILE;
CREATE PUBLIC SYNONYM PRODUCT_PROFILE FOR SYSTEM.PRODUCT_PRIVS;
DROP SYNONYM PRODUCT_USER_PROFILE;
CREATE SYNONYM PRODUCT_USER_PROFILE FOR SYSTEM.SQLPLUS_PRODUCT_PROFILE;
DROP PUBLIC SYNONYM PRODUCT_USER_PROFILE;
CREATE PUBLIC SYNONYM PRODUCT_USER_PROFILE FOR SYSTEM.PRODUCT_PRIVS;

-- End of pupbld.sql

/*接下来我们在一个执行过pupbld.sql脚本的库中将PRODUCT_USER_PROFILE相关对象都drop掉 */

SQL> DROP TABLE SQLPLUS_PRODUCT_PROFILE;
DROP VIEW  PRODUCT_PRIVS;
DROP PUBLIC SYNONYM PRODUCT_PROFILE;
DROP SYNONYM PRODUCT_USER_PROFILE;
DROP PUBLIC SYNONYM PRODUCT_USER_PROFILE;
Table dropped.

SQL>
View dropped.

SQL>
Synonym dropped.

SQL>
Synonym dropped.

SQL>
Synonym dropped.

SQL> create user test identified by test;

User created.

SQL> grant connect to test;

Grant succeeded.

SQL> conn test/test
Error accessing PRODUCT_USER_PROFILE
Warning:  Product user profile information not loaded!
You may need to run PUPBLD.SQL as SYSTEM
Connected.

SQL> conn system/d2nb51tz
Connected.
SQL> @pupbld
...........................
SQL> conn test/test
Connected.

/*重新执行pupbld.sql脚本后登录恢复正常 */
在一个新库中若出现Error accessing PRODUCT_USER_PROFILE等信息,那么极有可能是该库在手动创建过程中没有执行必要的pupbld.sql脚本。在这里我们有必要列举出在手动创建数据库后有必要执行的一系列脚本:
  1. @?/rdbms/admin/catalog.sql         --creates the data dictionary and public synonyms for many of its views, and grants PUBLIC access to the synonyms
  2. @?/rdbms/admin/catproc.sql         --runs all scripts required for or used with PL/SQL.
  3. @?/rdbms/admin/catblock.sql      --creates views that can dynamically display lock dependency graphs
  4. @?/rdbms/admin/dbmspool.sql   -- create dbms_shared_pool package
  5. @?/rdbms/admin/owminst.plb     --install oracle workspace manager,视乎需求可不运行
  6. @?/rdbms/admin/catoctk.sql         --creates the Oracle Cryptographic Toolkit package,视乎需求可不运行
以上脚本均需以sysdba身份运行,而以下脚本以system用户运行:
  1. @?/sqlplus/admin/pupbld.sql                                        --install the SQL*Plus PRODUCT_USER_PROFILE tables
  2. @?/sqlplus/admin/help/hlpbld.sql helpus.sql                --create SQL*Plus HELP system

转载于:https://www.cnblogs.com/macleanoracle/archive/2010/12/14/2967610.html

Flutter 项目中升级 google_mlkit_text_recognition 从0.11.0到 0.15.0,原来页面正常输入信息的输入框,现在只能删除,不能输入,可以调出输入法,就是无法输入信息,也没有任何错误日志出现,可能的原因是什么PS D:\zhuangyunweishi> flutter run -d emulator-5554 Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source! Launching lib\main.dart on sdk gphone64 x86 64 in debug mode... Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source! SourceNodeId()J (unsupported,test-api, reflection, allowed) W/ample.loadguard( 4563): Accessing hidden method Landroid/view/accessibility/AccessibilityRecord;->getSourceNodeId()J (unsupported, reflection, allowed) W/ample.loadguard( 4563): Accessing hidden field Landroid/view/accessibility/AccessibilityNodeInfo;->mChiW/ample.loadguard( 4563): Accessing hidden method Landroid/util/LongArray;->get(I)J (unsupported, reflection, allowed) W/HWUI ( 4563): Unknown dataspace 0 Syncing files to device sdk gphone64 x86 64... 349ms Flutter run key commands. r Hot reload. R Hot restart. h List all available interactive commands. d Detach (terminate "flutter run" but leave application running). c Clear the screen q Quit (terminate the application on the device). A Dart VM Service on sdk gphone64 x86 64 is available at: http://127.0.0.1:59853/CVGpwsWg3j8=/ The Flutter DevTools debugger and profiler on sdk gphone64 x86 64 is available at: http://127.0.0.1:9102?uri=http://127.0.0.1:59853/CVGpwsWg3j8=/ I/Choreographer( 4563): Skipped 61 frames! The application may be doing too much work on its main thread. I/WindowExtensionsImpl( 4563): Initializing Window Extensions, vendor API level=6, activity embedding enabled=true W/HWUI ( 4563): Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... W/HWUI ( 4563): Failed to initialize 101010-2 format, error = EGL_SUCCESS I/Gralloc4( 4563): mapper 4.x is not supported I/ample.loadguard( 4563): Compiler allocated 5174KB to compile void android.view.ViewRootImpl.performTraversals() I/ample.loadguard( 4563): Compiler allocated 5417KB to compile void android.view.ViewRootImpl.performTraversals() I/Choreographer( 4563): Skipped 96 frames! The application may be doing too much work on its main thread. D/ProfileInstaller( 4563): Installing profile for com.example.loadguard I/Choreographer( 4563): Skipped 58 frames! The application may be doing too much work on its main thread. D/EGL_emulation( 4563): app_time_stats: avg=72.81ms min=12.28ms max=215.51ms count=13 W/WindowOnBackDispatcher( 4563): sendCancelIfRunning: isInProgress=false callback=io.flutter.embedding.android.FlutterActivity$1@a62fe0a D/EGL_emulation( 4563): app_time_stats: avg=39.17ms min=3.82ms max=387.11ms count=26 D/EGL_emulation( 4563): app_time_stats: avg=100.25ms min=29.67ms max=506.91ms count=10 D/EGL_emulation( 4563): app_time_stats: avg=25.05ms min=7.17ms max=82.55ms count=33 D/EGL_emulation( 4563): app_time_stats: avg=53.35ms min=18.07ms max=178.05ms count=19 W/WindowOnBackDispatcher( 4563): sendCancelIfRunning: isInProgress=false callback=io.flutter.embedding.android.FlutterActivity$1@a62fe0a D/EGL_emulation( 4563): app_time_stats: avg=171.16ms min=11.99ms max=1100.23ms count=11 I/flutter ( 4563): [LOG] _loadPresetData called, template: 平板车 I/flutter ( 4563): [LOG] after _loadPresetData: productCode=LLD-7042, batchNumber=250615F10422, quantity=20 I/flutter ( 4563): [LOG] build: productCode=LLD-7042, batchNumber=250615F10422, quantity=20 D/EGL_emulation( 4563): app_time_stats: avg=104.12ms min=6.13ms max=1251.53ms count=14 W/WindowOnBackDispatcher( 4563): sendCancelIfRunning: isInProgress=false callback=io.flutter.embedding.android.FlutterActivity$1@a62fe0a I/flutter ( 4563): [LOG] _batchNumberController: "250615F10422" I/flutter ( 4563): [LOG] _batchFocusNode.hasFocus: "true" I/flutter ( 4563): [LOG] _batchFocusNode 获得焦点,重置输入法连接 I/flutter ( 4563): [LOG] _batchNumberController: "250615F10422" D/EGL_emulation( 4563): app_time_stats: avg=87.36ms min=5.70ms max=980.71ms count=16 I/ImeTracker( 4563): com.example.loadguard:a4714024: onRequestShow at ORIGIN_CLIENT reason SHOW_SOFT_INPUT fromUser false D/InputMethodManager( 4563): showSoftInput() view=io.flutter.embedding.android.FlutterView{343be5b VFE...... .F....ID 0,0-1344,2992 #1 aid=1073741824} flags=0 reason=SHOW_SOFT_INPUT D/InputConnectionAdaptor( 4563): The input method toggled cursor monitoring on D/InsetsController( 4563): show(ime(), fromIme=true) W/InteractionJankMonitor( 4563): Initializing without READ_DEVICE_CONFIG permission. enabled=false, interval=1, missedFrameThreshold=3, frameTimeThreshold=64, package=com.example.loadguard D/EGL_emulation( 4563): app_time_stats: avg=122.23ms min=9.35ms max=322.95ms count=8 I/ImeTracker( 4563): com.example.loadguard:a4714024: onShown D/EGL_emulation( 4563): app_time_stats: avg=1130.69ms min=2.70ms max=10409.28ms count=10 I/flutter ( 4563): [LOG] _batchNumberController: "250615F1042" I/flutter ( 4563): [LOG] onChanged batchNumber: 250615F1042 I/flutter ( 4563): [LOG] _batchNumberController: "250615F104" I/flutter ( 4563): [LOG] onChanged batchNumber: 250615F104 I/flutter ( 4563): [LOG] _batchNumberController: "250615F10" I/flutter ( 4563): [LOG] onChanged batchNumber: 250615F10 I/flutter ( 4563): [LOG] _batchNumberController: "250615F1" I/flutter ( 4563): [LOG] onChanged batchNumber: 250615F1 D/EGL_emulation( 4563): app_time_stats: avg=89.75ms min=11.73ms max=260.84ms count=11 I/flutter ( 4563): [LOG] _batchNumberController: "250615F" I/flutter ( 4563): [LOG] onChanged batchNumber: 250615F I/flutter ( 4563): [LOG] _batchNumberController: "250615" I/flutter ( 4563): [LOG] onChanged batchNumber: 250615 I/flutter ( 4563): [LOG] _batchNumberController: "25061" I/flutter ( 4563): [LOG] onChanged batchNumber: 25061 I/flutter ( 4563): [LOG] _batchNumberController: "2506" I/flutter ( 4563): [LOG] onChanged batchNumber: 2506 D/EGL_emulation( 4563): app_time_stats: avg=286.45ms min=234.33ms max=332.40ms count=4 I/flutter ( 4563): [LOG] _batchNumberController: "250" I/flutter ( 4563): [LOG] onChanged batchNumber: 250 D/EGL_emulation( 4563): app_time_stats: avg=480.30ms min=474.05ms max=492.52ms count=3 D/EGL_emulation( 4563): app_time_stats: avg=500.04ms min=500.03ms max=500.05ms count=2 D/EGL_emulation( 4563): app_time_stats: avg=500.02ms min=499.29ms max=501.43ms count=3 D/EGL_emulation( 4563): app_time_stats: avg=499.61ms min=499.27ms max=500.01ms count=3 D/EGL_emulation( 4563): app_time_stats: avg=509.42ms min=500.94ms max=517.91ms count=2 I/flutter ( 4563): [LOG] _quantityController: "20" I/flutter ( 4563): [LOG] _batchFocusNode.hasFocus: "false" I/flutter ( 4563): [LOG] _quantityFocusNode.hasFocus: "true" I/flutter ( 4563): [LOG] _quantityFocusNode 获得焦点,重置输入法连接 I/flutter ( 4563): [LOG] _quantityController: "20" I/ImeTracker( 4563): com.example.loadguard:3fa548c6: onRequestShow at ORIGIN_CLIENT reason SHOW_SOFT_INPUT fromUser false D/InputMethodManager( 4563): showSoftInput() view=io.flutter.embedding.android.FlutterView{343be5b VFE...... .F...... 0,0-1344,2992 #1 aid=1073741824} flags=0 reason=SHOW_SOFT_INPUT D/InputConnectionAdaptor( 4563): The input method toggled cursor monitoring on D/InputConnectionAdaptor( 4563): The input method toggled cursor monitoring off D/InputConnectionAdaptor( 4563): The input method toggled cursor monitoring on D/InsetsController( 4563): show(ime(), fromIme=true) I/ImeTracker( 4563): com.example.loadguard:3fa548c6: onCancelled at PHASE_CLIENT_APPLY_ANIMATION D/EGL_emulation( 4563): app_time_stats: avg=132.37ms min=24.18ms max=498.39ms count=10 I/flutter ( 4563): [LOG] _quantityController: "2" I/flutter ( 4563): [LOG] onChanged quantity: 2 I/flutter ( 4563): [LOG] setState in onChanged quantity, value: 2 I/flutter ( 4563): [LOG] build: productCode=LLD-7042, batchNumber=250, quantity=2 D/EGL_emulation( 4563): app_time_stats: avg=118.76ms min=5.83ms max=501.22ms count=11 D/EGL_emulation( 4563): app_time_stats: avg=499.52ms min=499.51ms max=499.54ms count=3 D/EGL_emulation( 4563): app_time_stats: avg=499.96ms min=499.33ms max=500.58ms count=2 D/EGL_emulation( 4563): app_time_stats: avg=500.42ms min=498.21ms max=501.73ms count=3 I/flutter ( 4563): [LOG] _quantityFocusNode.hasFocus: "false" I/ImeTracker( 4563): com.example.loadguard:bb1c0f0b: onRequestHide at ORIGIN_CLIENT reason HIDE_SOFT_INPUT fromUser false D/InsetsController( 4563): hide(ime(), fromIme=true) D/InputConnectionAdaptor( 4563): The input method toggled cursor monitoring off D/EGL_emulation( 4563): app_time_stats: avg=8097.52ms min=16.38ms max=16178.67ms count=2 D/EGL_emulation( 4563): app_time_stats: avg=210.48ms min=22.28ms max=383.62ms count=5 I/ImeTracker( 4563): com.example.loadguard:3160c9a6: onRequestHide at ORIGIN_CLIENT reason HIDE_SOFT_INPUT_ON_ANIMATION_STATE_CHANGED fromUser false I/ImeTracker( 4563): com.example.loadguard:bb1c0f0b: onHidden D/EGL_emulation( 4563): app_time_stats: avg=199.13ms min=29.11ms max=877.45ms count=6 I/flutter ( 4563): [LOG] build: productCode=LLD-7042, batchNumber=250715F10422, quantity=20 W/WindowOnBackDispatcher( 4563): sendCancelIfRunning: isInProgress=false callback=io.flutter.embedding.android.FlutterActivity$1@a62fe0a D/EGL_emulation( 4563): app_time_stats: avg=71.67ms min=6.31ms max=892.22ms count=16 I/flutter ( 4563): [LOG] _batchNumberController: 250715F10422 I/ImeTracker( 4563): com.example.loadguard:64b38682: onRequestShow at ORIGIN_CLIENT reason SHOW_SOFT_INPUT fromUser false D/InputMethodManager( 4563): showSoftInput() view=io.flutter.embedding.android.FlutterView{343be5b VFE...... .F...... 0,0-1344,2992 #1 aid=1073741824} flags=0 reason=SHOW_SOFT_INPUT D/EGL_emulation( 4563): app_time_stats: avg=23.28ms min=2.54ms max=224.42ms count=29 D/InputConnectionAdaptor( 4563): The input method toggled cursor monitoring on D/InsetsController( 4563): show(ime(), fromIme=true) D/EGL_emulation( 4563): app_time_stats: avg=776.08ms min=10.58ms max=3659.82ms count=5 I/ImeTracker( 4563): com.example.loadguard:64b38682: onShown I/flutter ( 4563): [LOG] _batchNumberController: 250715F1042 I/flutter ( 4563): [LOG] onChanged batchNumber: 250715F1042 D/EGL_emulation( 4563): app_time_stats: avg=120.61ms min=16.27ms max=495.79ms count=11 I/flutter ( 4563): [LOG] _batchNumberController: 250715F104 I/flutter ( 4563): [LOG] onChanged batchNumber: 250715F104 I/flutter ( 4563): [LOG] _batchNumberController: 250715F10 I/flutter ( 4563): [LOG] onChanged batchNumber: 250715F10 I/flutter ( 4563): [LOG] _batchNumberController: 250715F1 I/flutter ( 4563): [LOG] onChanged batchNumber: 250715F1 I/flutter ( 4563): [LOG] _batchNumberController: 250715F I/flutter ( 4563): [LOG] onChanged batchNumber: 250715F I/flutter ( 4563): [LOG] _batchNumberController: 250715 I/flutter ( 4563): [LOG] onChanged batchNumber: 250715 I/flutter ( 4563): [LOG] _batchNumberController: 25071 I/flutter ( 4563): [LOG] onChanged batchNumber: 25071 D/EGL_emulation( 4563): app_time_stats: avg=108.70ms min=13.49ms max=248.17ms count=10 I/flutter ( 4563): [LOG] _batchNumberController: 2507 I/flutter ( 4563): [LOG] onChanged batchNumber: 2507 I/flutter ( 4563): [LOG] _batchNumberController: 250 I/flutter ( 4563): [LOG] onChanged batchNumber: 250 D/EGL_emulation( 4563): app_time_stats: avg=358.31ms min=157.83ms max=537.44ms count=4 D/EGL_emulation( 4563): app_time_stats: avg=489.67ms min=460.90ms max=506.42ms count=3 D/EGL_emulation( 4563): app_time_stats: avg=499.17ms min=496.25ms max=502.55ms count=3 D/EGL_emulation( 4563): app_time_stats: avg=498.30ms min=495.33ms max=500.43ms count=3 D/EGL_emulation( 4563): app_time_stats: avg=499.64ms min=497.64ms max=501.15ms count=3 D/EGL_emulation( 4563): app_time_stats: avg=501.02ms min=499.58ms max=502.46ms count=2 D/EGL_emulation( 4563): app_time_stats: avg=499.58ms min=498.45ms max=500.49ms count=3这段日志,在输入框中删除正常,无法输入信息,输入法可以调出,你能看出来问题在哪里吗?
最新发布
07-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值