Compartilhando conhecimento com o mundo

Com tecnologia do Blogger.

Pesquisa

Download

Blogger Tricks

Blogger Themes

Visitas

Assuntos

11/12/2013

Privilégios no Informix


Existe três níveis de segurança de dados relacionados para os usuários do banco de dados (usuários que devem ter algum tipo de acesso a dados em banco de dados) de acessar itens de dados específicos. Estes níveis são de banco de dados, tabela e coluna.

Privilégios em nível de banco

Todos os usuários devem ter acesso a um banco de dados para utilização de dados em um servidor. Os três privilégios em nível de banco de dados são contato, recursos e DBA. Abaixo vamos destacar os diferentes níveis de autoridade associada com cada privilégio.

Tabela 16.1 - Privilégios em nível de banco
+------------------------------------------------------------------------------------+---------+----------+---------+
| Privilegios                                                                        | Connect | Resource | DBA     |
+------------------------------------------------------------------------------------+---------+----------+---------+
|  Select, insert, update, delete, uso de tabelas temporárias, e uso de views.       | Sim     | Sim      | Sim     |
+------------------------------------------------------------------------------------+---------+----------+---------+
|  Create, Alter, Drop, e as tabelas do próprio índice.                              | Não     | Sim      | Sim     |
+------------------------------------------------------------------------------------+---------+----------+---------+
| Grant, Revoke, e Drop de outras tabelas de owned, inicia e para o banco de dados.  | Não     | Não      | Sim     |
+------------------------------------------------------------------------------------+---------+----------+---------+
Connect

É o nível de privilégio minimo para o banco de dados. Usuários com connect podem executar select, insert, update e delete, e executar stored procedures em tabelas, criar views e tabelas e criar tabelas temporárias com ou sem índices.

Resource

Os usuários com privilégios de resource tem todos os privilégios de usuários de connect. Eles também têm a capacidade adicional para criar, alterar e eliminar os seus próprios índices lugar nessas tabelas.

DBA

O criador e dono de um banco de dados é dado automaticamente privilégios de DBA. Um DBA tem os mesmos privilégios que os usuários se conectam com as habilidades e recursos adicionados. As habilidades adicionadas incluem concessão e revogação de recursos, conectar e privilégios de DBA e de outros usuários, e dropping e de alteração das tabelas de outros usuários e opiniões. Os usuários com privilégio de DBA também podem drop, iniciar, parar, e recuperar um banco de dados.

Concedendo e Revogando nivel de privilégios de banco de

O usuário que cria o banco de dados é dado automaticamente o privilégios de DBA, que é o único nível que pode realizar grants e revokes. O primeiro DBA pode criar outro DBAs com uma statement de grant em SQL. A grant dá autoridade para usuários específicos em qualquer nível que você escolher. O DBA também pode usar uma revogação para remover ou diminuir a autoridade.

O Informix tem uma chave chamada PUBLIC que representa todos os usuários que acessam o banco de dados. Para especificar os usuários, use a sua UNIX IDs. Você pode especificar uma lista de usuários, separando cada ID UNIX com uma vírgula.

O banco que os usuários obtenham acesso é o banco para que o DBA está ligado para executar o SQL para realizar o grant. Se o servidor possui vários bancos de dados, o DBA deve realizar para cada banco de dados. Se o usuário tem permissão de acesso apenas a uma das bases de dados disponíveis, ele deve executar a concessão em apenas banco de dados específico quando este estiver aberto.

Para conceder privilégios grant, use esta sintaxe:
GRANT CONNECT TO PUBLIC;
GRANT CONNECT TO user1;
GRANT CONNECT TO usera,userb,userc;
Para retirar os privilégios de connect, use esta sintaxe:
REVOKE CONNECT FROM PUBLIC;
REVOKE CONNECT FROM user1;
REVOKE CONNECT FROM usera,userb,userc;
Para conceder privilégios de grant, utilize esta sintaxe:
GRANT RESOURCE TO PUBLIC;
GRANT RESOURCE TO user1;
GRANT RESOURCE TO usera,userb,userc;
Para retirar os privilégios de resources, utilize esta sintaxe:
REVOKE RESOURCE FROM PUBLIC;
REVOKE RESOURCE FROM user1;
REVOKE RESOURCE FROM usera,userb,userc;
Para privilégios grant DBA, utilize esta sintaxe:
GRANT DBA TO user1;
GRANT DBA TO usera,userb,userc;
Para retirar os privilégios DBA, utilize esta sintaxe:
REVOKE DBA FROM user1;
REVOKE DBA FROM usera,userb,userc;
Não é uma boa idéia dar privilégios grant DBA ao PUBLIC. Imagine ter centenas de usuários a habilidade de deixar parar o banco de dados ! Quando inicialmente concessão de privilégios, lembre-se de conceder apenas os níveis de contato ou de recurso ao PUBLIC.

Nível de tabela e privilégios em nível de coluna

Quando um usuário tem acesso a um banco de dados, o DBA pode limitar o acesso a tabelas e colunas específicas dentro de tabelas. O criador da tabela ou qualquer recurso de nível de usuário ou DBA nível pode criar tabelas. Que o dono ou qualquer DBA pode conceder privilégios em nível de tabela para outros usuários da tabela. Um total de oito palavras chaves fornecem diferentes privilégios em nível de tabela: Insert, Delete, Select, Update, References, Index, Alter, e All.

INSERT

Concessão de privilégios inserir permite aos usuários adicionar novos dados para a tabela. Revogar o privilégio pára que os usuários adicionem dados para a tabela.
GRANT INSERT ON customer_table TO user1;
REVOKE INSERT ON customer_table FROM PUBLIC;
DELETE

Conceder privilégios de exclusão permite aos usuários a permissão de remover dados de uma tabela. Revogar o privilégio pára usuários removam os dados da tabela.
GRANT DELETE ON customer_table TO user1;
REVOKE DELETE ON customer_table FROM PUBLIC;
SELECT

Selecione os privilégios podem ser concedidos a nível de tabela ou em nível de coluna específica. Os usuários podem ter a capacidade de linha de uma consulta na tabela inteira ou apenas áreas específicas. No primeiro exemplo, user1 pode verificar para qualquer coluna ou linha da customer_table. A segunda concessão só permite PÚBLICO para consultar apenas as colunas customer_id e o equilíbrio do customer_table. Você pode revogar os privilégios da mesma forma.
GRANT SELECT ON customer_table TO user1;
GRANT SELECT (customer_id, balance) ON customer_table TO PUBLIC;
REVOKE SELECT ON customer_table FROM user3;
REVOKE SELECT (customer_id, balance) ON customer_table FROM user4;
UPDATE

Você pode conceder privilégios de atualização no nível de tabela ou níveis coluna específica. Os usuários podem ter a capacidade de alterar uma linha inteira da tabela ou apenas áreas específicas. No primeiro exemplo, user1 pode atualizar qualquer coluna ou qualquer linha da customer_table. A segunda concessão permite PÚBLICO para atualizar somente as colunas customer_id eo equilíbrio do customer_table. Você pode revogar os privilégios da mesma forma.
GRANT UPDATE ON customer_table TO user1;
GRANT UPDATE (customer_id, balance) ON customer_table TO PUBLIC;
REVOKE UPDATE ON customer_table FROM user3;
REVOKE UPDATE (customer_id, balance) ON customer_table FROM user4;
REFERENCES

Você pode conceder aos usuários a capacidade de forçar restrições referenciais em toda a linha ou colunas específicas de uma tabela. O usuário deve ter um recurso de nível de usuário de banco de dados antes o privilégio referências. Restrições referenciais executam tarefas como exclusões em cascata, ou qualquer outra tarefa que depende de como as colunas se relacionam com outras colunas.
GRANT REFERENCES ON customer_table TO user1;
GRANT REFERENCES (customer_id, balance) ON customer_table TO PUBLIC;
REVOKE REFERENCES ON customer_table FROM user3;
REVOKE REFERENCES (customer_id, balance) ON customer_table FROM user4;
INDEX

O privilégio de índice aos usuários é a capacidade de criar e drop os índices relacionados a uma tabela. Os usuários devem ter o privilégio de recurso em combinação com o privilégio de índice. Usuários com conexão não pode criar um índice, mesmo se eles têm o privilégio de índice. Não há nenhum privilégio em nível de coluna, pois os índices são construídos em todas as linhas da tabela.
GRANT INDEX ON customer_table TO user1;
REVOKE INDEX ON customer_table FROM user3;
ALTER

O privilégio alter permite aos utilizadores de alterar o layout das colunas na tabela. Usuários com a permissão alter podem adicionar, excluir e alterar colunas e os tipos de dados da coluna. Somente os usuários com conhecimento do sistema de banco de dados devem ter esse privilégio. Esse privilégio é quase tão alto nível como DBA. Alter se aplica apenas ao nível da tabela.

GRANT ALTER ON customer_table TO user1;
REVOKE ALTER ON customer_table FROM user3;
ALL

Fornece todos os privilégios de tabelas e colunas para os usuários.
GRANT ALL ON customer_table TO user1;
REVOKE ALL ON customer_table FROM user2;
Combinações

Você pode conceder ou revogar diferentes combinações de mesa e privilégios de coluna em um comando.Coloque os privilégios de qualquer ordem, separados por uma vírgula, após a conceder ou revogar a palavra-chave.
GRANT INSERT, DELETE, UPDATE ON customer_table TO PUBLIC;
GRANT SELECT, UPDATE (customer_id, balance) ON customer_table TO user2;
REVOKE INDEX, ALTER ON customer_table FROM user1;
Você também pode combinar os privilégios em nível-de-tabela e coluna-de-nível em um statement. Privilégios de nível de coluna use as colunas especificado e, em privilégios de nível de tabela use a tabela especificada.
GRANT INSERT, DELETE, SELECT, UPDATE (customer_id, balance) ON customer_table TO user2;
REVOKE INDEX, SELECT, ALTER (customer_id, balance) ON customer_table FROM user3;
Outras Keywords

Você pode usar duas outras palavras-chave em conjunto com o comando GRANT. O primeiro é o sobre GRANT OPTION keyword. Quando combinado com o comando GRANT, o usuário recebe os privilégios também pode conceder os mesmos privilégios para outros usuários.

No exemplo a seguir, user1 não só tem os privilégios de insert, delete, select e update sobre customer_table , mas ele ou ela também pode conceder qualquer ou de todos estes privilégios para outros usuários.
GRANT INSERT, DELETE, SELECT, UPDATE ON customer_table TO user1 WITH GRANT OPTION;
Se o User1 tem um ou todos os privilégios revogados, todos os privilégios que os usuários que user1 conceder também terão os mesmos privilégios revogados.

A outra palavra-chave usada com concessão é a palavra-chave AS. A palavra-chave AS permite que você execute uma performe com um grant como se de outro usuário realiza a subvenção. Isso configura a situação descrita anteriormente, se o outorgante for revogada, todos os usuários concedida pelo próprio usuário também são revogados.

Continuando com o exemplo anterior, o user1 foi dado o privilégio de insert, delete, select, update na tabela customer_table e o direito de conceder esses privilégios. O DBA, o proprietário da tabela, ou o usuário que concedeu user1 os privilégios poderia, então, conceder como user1 para outros usuários:

GRANT INSERT, DELETE, SELECT, UPDATE ON customer_table TO user1 WITH GRANT OPTION;
Agora o user1 através do user5 têm os mesmos privilégios. Para revogar os privilégios em todos os cinco usuários, apenas revogar user1 :
REVOKE ALL ON customer_table FROM user1;
Sumário

Segurança é uma questão importante com os criadores de banco de dados, proprietários, fornecedores e usuários. Não só de segurança fornecem um meio de manter os dados seguros e intactos de perda, mas também vai um outro nível, mantendo o conteúdo dos dados seguros e protegidos de mau uso ou abuso.

Você pode conseguir os dois níveis de segurança de banco de dados usando GRANT e REVOKE declarações para definir os privilégios no banco de dados, tabela e os níveis de coluna.Definição de diferentes tipos de usuários também separa os usuários responsáveis ​​pela gestão do banco de dados, DBAs e usuários normais.

Você pode usar procedimentos armazenados e gatilhos para auditoria de dados como e quando é usado ou alterado e também restringir o acesso aos dados.Você pode configurar um procedimento armazenado para executar uma tarefa em dados, e somente usuários privilegiados podem acessar esse procedimento armazenado para executar a tarefa.

Outra forma de restringir a forma como os dados aos usuários acesso é através de pontos de vista.Você pode usar a fim de forçar os usuários a executar tarefas em um subconjunto de dados reais, ao invés de acessar o banco de dados inteiro.

Finalmente, você pode usar os procedimentos do sistema operacional para bloquear usuários do banco de dados e todo o sistema.Aplicações cliente deve construir em processos de logon específicas para permitir que apenas usuários privilegiados no servidor de banco de dados.

Texto Original

0 comentários:

Enviar um comentário