fcc ama a cláusula grant
2017
Um Database Administrator − DBA criou uma função no Oracle chamada programador utilizando o comando CREATE ROLE programador;. Em seguida, concedeu o privilégio de criação de tabela à função utilizando o comando GRANT create table TO programador;. Para conceder a função programador ao usuário Pedro, o DBA deve utilizar o comando
a) ASSIGN programador TO Pedro WITH GRANT OPTION;
b) GRANT programador TO Pedro;
c) BIND Pedro TO programador;
d) ADD Pedro TO programador;
e) GRANT ADD Pedro TO programador;
2017
Um Database Administrator − DBA Oracle deseja conceder à usuária Maria os privilégios para criar sessão de conexão no banco de dados e criar tabelas, permitindo ainda que ela possa estender seus privilégios para outros usuários. O comando que o DBA deverá utilizar é:
a) GRANT CREATE SESSION, CREATE TABLE TO Maria WITH RESTRICTED OPTION;
b) GRANT CREATE SESSION, CREATE TABLE TO Maria WITH ADMIN OPTION;
c) GRANT PRIVILEGE CREATE SESSION, CREATE TABLE TO Maria WITH GRANT OPTION;
d) GRANT ADMIN CREATE SESSION, CREATE TABLE TO Maria;
e) GRANT CREATE SESSION, CREATE TABLE TO Maria WITH GRANT OPTION;
A questão utilizou o termo função no sentido de papel (role). Considero que deveria ter adotado outra terminologia, já que pode confundir com o objeto função criado através do comando CREATE FUNCTION. De todo modo, veja que temos que marcar o comando que realize as três operações descritas no enunciado. Eles serão os seguintes:
1) A sintaxe da criação de um papel é: CREATE ROLE <nome>.
2) Já para conceder um privilegio para um papel ou usuário, se utiliza: GRANT <privilegio> TO <papel/usuário>.
3) Por fim, para atribuir o papel a determinado usuário, a sintaxe é: GRANT ROLE <papel> TO <usuário>.
Contudo, veja que o ROLE é opcional nos SGBDs, então poderíamos simplesmente utilizar: GRANT <papel> TO <usuário>. Assim, veja que a alternativa D se encaixa perfeitamente nesses comandos que trouxemos.
Gabarito: D