# Execução do Network Server sob o gerenciador de segurança

O Network Server deve ser executado sob o gerenciador de segurança do Java. Os próximos exemplos mostram a utilização de um arquivo de política de segurança exemplo. Deve ser feito um ajuste fino nesta política de segurança para adequá-la às próprias necessidades.

CUIDADO:
Abrir o servidor para todos os clientes, sem limitar o acesso utilizando uma política de segurança semelhante a do exemplo a seguir, é um sério risco de segurança.

    // Conjunto de permissões recomendadas para inicializar o Network Server,
    // assumindo que o diretório 'd:/derby/lib' seja seguro.
    // Deve ser feito um ajuste fino baseado no próprio ambiente.
    grant codeBase "file:d:/derby/lib/-" {
    permission java.io.FilePermission "${derby.system.home}${/}-",
            "read, write, delete";
    permission java.io.FilePermission "${derby.system.home}","read";
    permission java.io.FilePermission "${user.dir}${/}-", "read, write, delete";
    permission java.util.PropertyPermission "derby.*", "read";
    permission java.util.PropertyPermission "user.dir", "read";
    permission java.lang.RuntimePermission "createClassLoader";
    permission java.net.SocketPermission "minhamaquinacliente", "accept";
    };

    // Conjunto de permissões requerido para parar o Network Server, assumindo
    // que o diretório 'd:/derby/lib' seja seguro.
    // Deve ser feito um ajuste fino baseado no próprio ambiente.
    grant codeBase "file:d:/derby/lib/-"  {
    // O que vem a seguir é requerido quando o servidor é inicializado com
    // "-h localhost", ou sem a opção -h.
    permission java.net.SocketPermission "localhost", "accept, connect, resolve";
    permission java.net.SocketPermission "127.0.0.1", "accept, connect, resolve";
    // O que vem a seguir é requerido apenas quando o servidor é inicializado com a
    // opção -h <hospedeiro> (senão o acesso para "shutdown" será negado).
    permission java.net.SocketPermission "<hospedeiro>:*", "accept, connect, resolve";
    };

- O exemplo a seguir mostra como inicializar o Network Server no gerenciador de segurança padrão (escutando apenas os clientes no `localhost`, que é o comportamento padrão quando a opção `-h` não é utilizada para inicializar o servidor). Este exemplo assume que o arquivo de política de segurança se encontra em d:/nwsvr.policy.

      java -Djava.security.manager -Djava.security.policy=d:/nwsvr.policy
      org.apache.derby.drda.NetworkServerControl start

- O mesmo comportamento pode ser obtido utilizando a opção `-h` ao inicializar o servidor, conforme mostrado no exemplo a seguir:

      java -Djava.security.manager -Djava.security.policy=d:/nwsvr.policy
      org.apache.derby.drda.NetworkServerControl start -h localhost

- O exemplo a seguir mostra como inicializar o Network Server (assumindo que o servidor será inicializado na máquina hospedeira meuservidor) no gerenciador de segurança padrão (escutando requisições de clientes originadas a partir de outras máquinas apenas). Este exemplo assume que o arquivo de política de segurança se encontra em d:/nwsvr.policy.

      java -Djava.security.manager -Djava.security.policy=d:/nwsvr.policy
      org.apache.derby.drda.NetworkServerControl start -h meuservidor

Tópico pai: Tópicos avançados do Network Server do Derby
Conceitos relacionados
Segurança do Network Server
Tarefas relacionadas
Configuração do Network Server para tratar as conexões
Controle do registro pela utilização do arquivo de log
Controle do rastreamento pela utilização da facilidade de rastreamento