1.创建用户
create user testuser identified by testuser;
2.赋予连接数据库的权限
grant create session to testuser;
3.赋予表查询权限
grant select on tableA to testuser;
grant select on tableB to testuser;
一般情况,这样就可以了,但是使用testuser查询表时,需要带创建这两张表的用户名去查询,例如,tableA创建用户为 userA,则testuser查询时需使用以下语句:
select * from userA.tableA;
解决这个问题可以考虑以同义词的方式建立用户对应的同义词,然后赋予该同义词的权限
create synonym testuser.tableA for userA.tableA;
grant select on testuser.tableA to testuser;
这样testuser连接后查询时,就不用带前缀了,可以直接用
select * from tableA;
另附,限制用户的访问数,可以限制为30
alter system set resource_limite=true scope=both sid='*';
create profile third_user limit SESSIONS_PER_USER 30 FAILED_LOGIN_ATTEMPTS unlimited;
alter user cdscuser profile third_user;