home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 February / PCWK0296.iso / po7_win / tools / plus31 / v7pup.sql < prev    next >
Text File  |  1994-05-24  |  4KB  |  98 lines

  1. rem
  2. rem  $Header: v7pup.sql 3001200.1 92/04/14 16:00:29 mhill Generic<base> $ src60 sqlplus sqlplus/admin pupbld.sql 0 Copyr (c) 1988 Oracle Corporation 
  3. rem
  4. rem  +---------------------------------------------------------------------+
  5. rem  |  PUPBLD.SQL -- CREATE PRODUCT AND USER PROFILE TABLES               |
  6. rem  |                                                                     |
  7. rem  |  This script is used by the DBA to create the product_profile and   |
  8. rem  |  user_profile tables in the SYSTEM account.                         |
  9. rem  |  There are two views, product_privs and user_privs, which are what  |
  10. rem  |  a user will see as product_profile and user_profile.  They allow   |
  11. rem  |  the user to see (and in the case of user_profile, modify) only     |
  12. rem  |  their own privileges or profiles.                                  |
  13. rem  +---------------------------------------------------------------------+
  14.  
  15. rem  +---------------------------------------------------------------+
  16. rem  |  If PRODUCT_USER_PROFILE existed, use its values and drop it  |
  17. rem  +---------------------------------------------------------------+
  18.  
  19. drop synonym product_user_profile;
  20.  
  21. create table product_profile as
  22.   select product, userid, attribute, scope, numeric_value, char_value,
  23.   date_value from product_user_profile;
  24.  
  25. drop table product_user_profile;
  26.  
  27. alter table product_profile add (long_value long);
  28.  
  29. rem  +---------------------------------------+
  30. rem  |  Create PRODUCT_PROFILE from scratch  |
  31. rem  +---------------------------------------+
  32.  
  33. create table product_profile
  34. (
  35.   product        varchar2 (30) not null,
  36.   userid         varchar2 (30),
  37.   attribute      varchar2 (240),
  38.   scope          varchar2 (240),
  39.   numeric_value  decimal (15,2),
  40.   char_value     varchar2 (240),
  41.   date_value     date,
  42.   long_value     long
  43. );
  44.  
  45. rem  +----------------------------------------------------------+
  46. rem  |  Create the view PRODUCT_PRIVS and grant access to that  |
  47. rem  +----------------------------------------------------------+
  48.  
  49. create view product_privs as
  50.   select product, userid, attribute, scope,
  51.          numeric_value, char_value, date_value, long_value
  52.   from product_profile
  53.   where userid = 'PUBLIC' or user like userid;
  54.  
  55. grant select on product_privs to public;
  56. create public synonym product_profile for system.product_privs;
  57. create synonym product_user_profile for system.product_profile;
  58. create public synonym product_user_profile for system.product_privs;
  59.  
  60. rem  +---------------------------------+
  61. rem  |  Create the table USER_PROFILE  |
  62. rem  +---------------------------------+
  63.  
  64. create table user_profile
  65. (
  66.   product        varchar2 (30),
  67.   userid         varchar2 (30),
  68.   profile        varchar2 (240),
  69.   attribute      varchar2 (240),
  70.   numeric_value  decimal (15,2),
  71.   char_value     varchar2 (240),
  72.   date_value     date,
  73.   long_value     long
  74. );
  75.  
  76. grant select on user_profile to public;
  77.  
  78. rem  +-------------------------------------------------------+
  79. rem  |  Create the view USER_PRIVS and grant access to that  |
  80. rem  +-------------------------------------------------------+
  81.  
  82. create view user_privs as
  83.   select product, userid, profile, attribute,
  84.          numeric_value, char_value, date_value, long_value
  85.   from user_profile
  86.   where userid = user
  87.   with check option;
  88.  
  89. grant select, update, insert, delete on user_privs to public;
  90. create public synonym user_profile for system.user_privs;
  91.  
  92. rem  +-------------------------------------------------------------+
  93. rem  |  Update the one SRW attribute in the PRODUCT_PROFILE table  |
  94. rem  +-------------------------------------------------------------+
  95.  
  96. update system.product_profile set attribute = 'PAGE_LIMIT'
  97.   where product = 'SQL*ReportWriter' and attribute = 'LIMIT';
  98.