Database 是否将执行授予另一个用户?
我在用Oracle研究数据库。 现在我创建了表,填充了表,创建了过程,触发器…现在我想创建另一个用户,并授予对过程执行的权限,所以我编写了序列:Database 是否将执行授予另一个用户?,database,oracle,Database,Oracle,我在用Oracle研究数据库。 现在我创建了表,填充了表,创建了过程,触发器…现在我想创建另一个用户,并授予对过程执行的权限,所以我编写了序列: create user utente identified by utente; grant create session to utente; grant execute "procedure_name" to utente; disc; conn utente; execute "procedure_name"; 但是甲骨文说“必须声明已识别的程
create user utente identified by utente;
grant create session to utente;
grant execute "procedure_name" to utente;
disc;
conn utente;
execute "procedure_name";
但是甲骨文说“必须声明已识别的程序名称”。。。
也就是说,用户看不到过程和所有表 如果这些是您运行的唯一命令,则新用户需要在过程名称前面加上其所有者的前缀:
conn utente;
execute proc_owner.procedure_name;
如果您不想每次都这样做,则该用户可以创建同义词,作为一次性任务:
create synonym procedure_name for proc_owner.procedure_name;
execute procedure_name;
或者,所有者可以创建一个公共同义词,并向public授予特权,前提是许多用户应该能够看到它。我只考虑为每个人真正需要的基本程序或功能做这件事,这是罕见的;除非真的有必要,否则我会避免使用公共同义词,但我认为无论如何我都应该提及它们。除了补助金和同义词之外,这个过程是否真的被命名为
“procedure\u name”
,还是procedure\u name
?双引号起作用。不,这是一个例子…过程名称是另一个,没有双引号