想动态的创建一个用户并授予权限 还要登录
DEF v_constring = tangbin/123;
set serveroutput on feedback on; --verify off termout off
declare
v_count number(3) default 0;
v_statement varchar2(300);
v_username varchar2(50);
v_password varchar2(50);
begin
v_username := '&v_username';
v_password := '&v_password';
select count(1) into v_count from dba_users where username=upper(''||v_username||'');
if v_count <>0 then
v_statement :='drop user '||v_username||' cascade';
execute immediate v_statement;
end if;
v_statement := 'create user '||v_username||' identified by "'||v_password||'"';
execute immediate v_statement;
dbms_output.put_line('********创建用户'||v_username||'成功***********');
v_statement :='grant connect,create session,create procedure,'
|| 'create trigger,create sequence,create table to'
|| ' '||v_username;
EXECUTE IMMEDIATE v_statement;
-- conn &v_constring;
-- v_statement := 'connect ' ||v_username||'''/'||v_password;
-- dbms_output.put_line(v_statement);
-- EXECUTE IMMEDIATE v_statement;
-- dbms_output.put_line('用户连接成功');
EXCEPTION
when others then
dbms_output.put_line(sqlerrm);
end;
/ connect &v_constring; //想在这根据我自己任意输入创建的用户名登录 不知道可以不
DEF v_constring = tangbin/123;
set serveroutput on feedback on; --verify off termout off
declare
v_count number(3) default 0;
v_statement varchar2(300);
v_username varchar2(50);
v_password varchar2(50);
begin
v_username := '&v_username';
v_password := '&v_password';
select count(1) into v_count from dba_users where username=upper(''||v_username||'');
if v_count <>0 then
v_statement :='drop user '||v_username||' cascade';
execute immediate v_statement;
end if;
v_statement := 'create user '||v_username||' identified by "'||v_password||'"';
execute immediate v_statement;
dbms_output.put_line('********创建用户'||v_username||'成功***********');
v_statement :='grant connect,create session,create procedure,'
|| 'create trigger,create sequence,create table to'
|| ' '||v_username;
EXECUTE IMMEDIATE v_statement;
-- conn &v_constring;
-- v_statement := 'connect ' ||v_username||'''/'||v_password;
-- dbms_output.put_line(v_statement);
-- EXECUTE IMMEDIATE v_statement;
-- dbms_output.put_line('用户连接成功');
EXCEPTION
when others then
dbms_output.put_line(sqlerrm);
end;
/ connect &v_constring; //想在这根据我自己任意输入创建的用户名登录 不知道可以不
解决方案 »
- 请教一个SQL语句
- Oralce接分游戏,要分的进!
- 一条sql语句
- windows访问unix下的Oracle问题
- 求教:oracle中图像数据的添加与读取
- 大家来看看这个SQL语句.
- 请问ORACLE88.1.6升级到oracle8.1.7,怎么办?急
- 问个日期的问题:selec * from aa where work_date= to_date('2002-08-09')如何写才对
- oracle managermentserver服务能启动,但登录EMC时输完迷码一确定该服务又关闭了。为什么?
- itext 生成pdf,表格怎么设置最大宽度
- oracle多表查询,但表里没有关键字,如何写?
- oracle数据转化的问题
可以考虑建一个表,维护用户的帐号密码,用户登录的时候检测帐号密码是否在表中有对应的数据
有的话直接登录到固定的数据库用户