Friday, August 05, 2005
Connected Thinking
Historically I, and many others, have advocated the banning of the CONNECT and RESOURCE roles, instead recommending using user-created roles or granting required privileges directly to user accounts. The CONNECT role has been a particular bug bear since it rather suggests that it allows a user to connect to a database, rather than its actual purpose of allowing a user to connect to a database and then create objects, database links to remote databases, alter sessions to set diagnostic events and so on. In 10gr2 CONNECT has one privilege and one only - CREATE SESSION.
I applaud this decision. Its brave, because it will break applications where required privileges haven't been thought about, but it is the right thing to do.
I also like the enhancements to security for external procedures run as jobs, though rather than grant the new privilege CREATE EXTERNAL JOB to all users with the CREATE JOB privilege on upgrade I'd have preferred a report that stated something like
The following users have the ability to schedule execution of operating system scripts and commands. For security reasons this privilege has been removed by default in 10g Release 2. If a user requires this functionality please grant the new CREATE EXTERNAL JOB privilege to that account.
But for example: what happens to my session's original grants (implied or otherwise)? What if I have one setting for resource manager and the new schema (set by my login trigger) has another: which should be the end result? Which one *is* the end result?
Guns kill people; therefore, they should be abolished. Isn't this the same logic Oracle is using? Wouldn't it be better to educate versus eradicate?
A german post complaining about the now missing CREATE VIEW privelege in the RESOURCE role, referencing this article:
IT-Blog: ORA-01031 on Create View
Gruss
Bernd