一 权限机制
1,权限: 系统权限 、 对象权限
系统权限:系统权限适合数据库管理相关的权限; create session 、 cretae table 、 create index 、 create view ......
对象权限:与用户操作数据对象相关的权限; update 、 insert 、delate、 select
报错的原因,
2, 把 scott 用户下的emp表授权给创建用户software查看
二 方案(schema)
Scott 用户能够查看emp表,但是software用户不能;
问题: soctt用户与software位于同一个数据库实例(orcl)里,为什么不能查看?
1, 当用户创建好后,如果该用户创建一个数据对象(表等),此时dbms就会创建一个对应的方案与该用户对应,并且该方案的名称和用户名称一致。因此,得出结论 system与scott 都拥有自己的方案。
2, Oracle实例里,能不能在同一个实例里不同的用户创建同样名称的数据对象(表),答案是:可以的
3, 方案(schema),当某用户创建一个数据对象时,此时dbms 就会创建一个对应的方案与该用户对应,并且该方案的名称和用户名称一致。因此,得出结论 system 与scott 都拥有自己的方案。
4,如果想查看某一个用户的数据对象, 可以通过pl/sql developer查看;
三 通过profile 限制用户恶意登录(口令管理)
1,可以profile想象成一个数据对象(文件、规则)
语法格式:
SQL> create profile 文件名 limit failed_login_attempts 3 password_lock_time 2;
SQL> alter user scott profiles userprofile;
案例: 允许某用户,最多产生过hi登录3次,如3次未登录成功,则锁定该用户,锁定后两天不能登录系统。
SQL> conn system/system@orcl
SQL> create profile userprofile1 limit failed_login_attempts 3 password_lock_time 2;
SQL> alter user scott prifile userprofile1;
SQL> conn scott/xxx@orcl(连续输错3此密码,输错第4次是发现账户锁住)
解锁:
SQL> alter user scott account unlock;
四 通过profile限制使用期限
语法:
SQL> create profile pprofile文件名 limit password_life_time 10 password_garce_time 2;
案例:
SQL> conn system/system@orcl
SQL> create profile userprofile2 limit password_life_time 10 password_grace_time 2;
sql> alter user scott profile userprofile2;
sql> conn scott/system@orcl
删除 profile
sql> drop profile userprofile1 [cascade];