Advertisement
lucasmouraahere

Módulo 12

Sep 10th, 2019
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.57 KB | None | 0 0
  1. /* PRIVILÉGIO DE SISTEMA */
  2.  
  3. --CRIANDO USUÁRIO
  4. CREATE USER HR_2
  5. IDENTIFIED BY HR;
  6.  
  7. --ALTERANDO SENHA DO USUARIO
  8. ALTER USER HR_2
  9. IDENTIFIED BY HR2;
  10.  
  11. --PREVILEGIOS PARA USUARIO
  12. GRANT
  13.   CREATE SESSION,
  14.   CREATE TABLE,
  15.   CREATE PROCEDURE,
  16.   CREATE VIEW,
  17.   CREATE SEQUENCE
  18. TO HR_2;
  19.  
  20. --ATRIBUIR PERMISSÕES DE UMA VEZ
  21. CREATE ROLE DEVS;
  22.  
  23. GRANT
  24.   CREATE SESSION,
  25.   CREATE TABLE,
  26.   CREATE PROCEDURE,
  27.   CREATE VIEW,
  28.   CREATE SEQUENCE
  29. TO DEVS;
  30.  
  31. --ATRIBUINDO GRANT ROLE PARA USUÁRIO
  32. GRANT DEVS
  33. TO HR_2;
  34.  
  35.  
  36. /* PRIVILEGIOS DE OBJETOS
  37.  
  38. ALTER
  39. DELETE
  40. EXECUTE
  41. INDEX
  42. INSERT
  43. REFERENCES
  44. SELECT
  45. UPDATE
  46.  
  47. TABELA: TODOS, EXCETO EXECUTE.
  48. VIEW: DELETE, INSERT, SELECT, UPDATE.
  49. SEQUENCE: ALTER, SELECT.
  50. PRCEDURE: EXECUTE.
  51.  
  52. WITH GRANT OPTION FAZ COM QUE O USUÁRIO POSSA DAR
  53. AS PERMISSÕES QUE ELE TEM PARA OUTRO USUÁRIO
  54.  
  55. */
  56.  
  57. GRANT SELECT
  58. ON employees
  59. TO HR_2;
  60.  
  61. GRANT UPDATE (department_name, location_id)
  62. ON departments
  63. TO HR_2;
  64.  
  65. GRANT SELECT, UPDATE (department_name, location_id), INSERT
  66. ON departments
  67. TO HR_2
  68. WITH GRANT OPTION;
  69.  
  70. /*
  71.  
  72. DICIONÁRIO DE DADOS PARA PRIVILÉGIOS
  73.  
  74. ROLE_SYS_PRIVS: Privilégios do sistema dentro de uma ROLE;
  75. ROLE_TAB_PRIVS: Privilégios de objetos concedidos a uma ROLE;
  76. USER_ROLE_PRIVS: Roles que o usuário tem;
  77. USER_TAB_PRIVS_MADE: Privilégios de objetos concedidos nos objetos do usuário;
  78. USER_TAB_PRIVS_RECD: Privilégios de objetos que o usuário possui;
  79. USER_COL_PRIVS_MADE: Privilégios nas colunas dos objetos do usuário;
  80. USER_COL_PRIVS_RECD: Privilégios que o usuário possuí em colunas de tabelas de outros usuários;
  81. USER_SYS_PRIVS: Privilégios de sistema concedidos ao usuário;
  82.  
  83. RETIRANDO PRIVILÉGIOS DE USUÁRIOS
  84. (TAMBÉM SERVE PARA WITH GRANT OPTION)
  85.  
  86. OBS: CASO REVOKE O PRIMEIRO USUÁRIO, OS DEMAIS QUE RECEBERAM
  87. GRANT DESSE USUÁRIO, PERDERAM AS PERMISSÕES TAMBÉM.
  88.  
  89. */
  90.  
  91. SELECT * FROM ROLE_SYS_PRIVS;
  92.  
  93. SELECT * FROM USER_TAB_PRIVS_MADE;
  94.  
  95. SELECT * FROM USER_COL_PRIVS_MADE;
  96.  
  97. SELECT * FROM USER_COL_PRIVS_RECD;
  98.  
  99. SELECT * FROM USER_SYS_PRIVS;
  100.  
  101. REVOKE SELECT, INSERT
  102.   ON departments
  103. FROM HR_2;
  104.  
  105. /* Crie um usuário com o seu nome, este usuário deve ter as permissões de se conectar,
  106. criar tabelas e functions.*/
  107.  
  108. CREATE USER MESH
  109. IDENTIFIED BY 123;
  110.  
  111. GRANT
  112.   CREATE SESSION,
  113.   CREATE TABLE,
  114.   CREATE PROCEDURE
  115. TO MESH;
  116.  
  117. /* Para o usuário que foi criado no Exercício 01,
  118. de à ele as permissões de de alterar as colunas department_id e department_name da tabela
  119. departments, select na tabela employees e delete na tabela jobs. Sendo que este usuário poderá
  120. conceder esta permissão à outros usuários.*/
  121.  
  122. GRANT UPDATE (department_id, department_name)
  123. ON departments
  124. TO HR_2
  125. WITH GRANT OPTION;
  126.  
  127. GRANT SELECT
  128. ON employees
  129. TO HR_2
  130. WITH GRANT OPTION;
  131.  
  132. GRANT DELETE
  133. ON jobs
  134. TO HR_2
  135. WITH GRANT OPTION;
  136.  
  137. /* Coloque todas as permissões de sistema que foram dadas ao usuário criado em uma ROLE,
  138. após isso retire as permissões de sistema desse usuário e atribua a ROLE para ele.*/
  139.  
  140. CREATE ROLE DBAS;
  141.  
  142. GRANT
  143.   CREATE SESSION,
  144.   CREATE TABLE,
  145.   CREATE PROCEDURE
  146. TO DBAS;
  147.  
  148. REVOKE
  149.   CREATE SESSION,
  150.   CREATE TABLE,
  151.   CREATE PROCEDURE
  152. FROM HR_2;
  153.  
  154. GRANT DBAS
  155. TO HR_2;
  156.  
  157. /* Mostre no dicionário de dados com apenas uma query (Será necessário usar o UNION ALL)
  158. todas as permissões de objeto que este usuário novo possuí*/
  159.  
  160. SELECT a.grantee, a.TABLE_NAME, a.privilege, NULL Nulo
  161.  FROM USER_TAB_PRIVS_MADE a
  162. WHERE a.grantee = 'HR_2'
  163. UNION ALL
  164. SELECT b.grantee, b.TABLE_NAME, b.previlege, b.colum_name
  165.  FROM USER_TAB_PRIVS_RECD b
  166. WHERE b.grantee = 'HR_2';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement