PUBLIC
The sql.bsq script, which is run when a
database is created , creates the public role:
create role public
/
Any privilege granted to public automatically becomes a privilege for other users as well.
其他用户拥有public role所有的权限。
public是role,而不是user
DROP VIEW SYS.DBA_ROLES;
/* Formatted on 2011/3/15 15:41:30 (QP5 v5.114.809.3010) */
CREATE OR REPLACE FORCE VIEW SYS.DBA_ROLES
(
ROLE,
PASSWORD_REQUIRED
)
AS
SELECT name,
DECODE (password,
NULL, 'NO',
'EXTERNAL', 'EXTERNAL',
'GLOBAL', 'GLOBAL',
'YES')
FROM user$
WHERE type# = 0 AND name NOT IN ('PUBLIC', '_NEXT_USER') ;
/* Formatted on 2011/3/15 15:41:30 (QP5 v5.114.809.3010) */
CREATE OR REPLACE FORCE VIEW SYS.DBA_ROLES
(
ROLE,
PASSWORD_REQUIRED
)
AS
SELECT name,
DECODE (password,
NULL, 'NO',
'EXTERNAL', 'EXTERNAL',
'GLOBAL', 'GLOBAL',
'YES')
FROM user$
WHERE type# = 0 AND name NOT IN ('PUBLIC', '_NEXT_USER') ;
sys.user$表中 type# = 0为role,
type# = 1为user