Permissões necessárias para a pasta de DADOS




Tenho o Sql Server 2017 e a pasta de Dados é o padrão, em `C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL`. Os direitos de acesso na pasta são:


[![enter image description here](https://i.stack.imgur.com/A2WUn.png)](https://i.stack.imgur.com/A2WUn.png)


Eu tenho um velho banco de dados com seu arquivo de MDF em `My SQL Database`. Eu tentei para duplicar os mesmos direitos para `My SQL Database`:


[![enter image description here](https://i.stack.imgur.com/RsRQl.png)](https://i.stack.imgur.com/RsRQl.png)


Eu não poderia duplicar TODOS os PACOTES de aplicativos como eu não sei quem é.


Com os direitos acima referidos em `My SQL Database` eu não poderia anexar novamente um banco de dados do seu arquivo MDF na pasta. Ele continua dizendo `Operating system error 5: "5(Access is denied.)"` no arquivo MDF.


O que as permissões de acesso são necessários ter arquivos de banco de dados em outra pasta diferente do padrão?
O servidor parece bem. Provavelmente não é o problema. Tente fazer um ping ao servidor de sua máquina e o ping sua máquina a partir do servidor. Se ele só vai para um lado, então o problema deve ser de firewall. Se ele não vá de ambas as formas certifique-se de que eles realmente estão na mesma rede.
Eu suponho que você tem três opções.


1. Definir permissões de usuário para que o usuário x pode apenas ler a partir do banco de dados.
2. Defina o banco de dados em modo de usuário único para que apenas uma conexão pode acessá-lo


sp\_dboption 'myDataBaseName', único, verdadeiro
3. Defina o banco de dados para somente leitura


sp\_dboption 'myDataBaseName', só de leitura, verdadeiro <p>bem, na verdade existe uma resposta específica do ubuntu para esta questão.</p><p>como mencionado por gergoes link, isso é basicamente sobre como modificar <em>/etc/mysql/my.cnf </em> e definir um novo valor para <strong> datadir = </strong> na seção <strong> [mysqld] </strong>. até agora, a parte inespecífica da resposta.</p><p>assumindo que você está executando uma versão um tanto moderna do ubuntu, você pode muito bem ter <a href="https://help.ubuntu.com/10.04/serverguide/c/apparmor.html">apparmor</a> instalado por padrão, com um perfil para <em>/usr/sbin/mysqld </em> em modo reforçado. esse perfil padrão provavelmente não aceitará seu novo datadir.</p><p>vamos supor que seu novo datadir seja <em>/home/data/mysql </em>.</p><p>se você abrir o arquivo <em> /etc/apparmor.d/usr.sbin.mysqld </em>, você, entre as regras, encontrará essas duas linhas.</p><pre><code>/var/lib/mysql/ r, /var/lib/mysql/** rwk, </code></pre><p>assumindo nosso exemplo acima, eles terão que ser substituídos ou (provavelmente preferíveis) complementados por essas duas linhas.</p><pre><code>/home/data/mysql/ r, /home/data/mysql/** rwk, </code></pre><p>antes de podermos iniciar nosso servidor mysql, com seu novo datadir, também teremos que recarregar explicitamente nosso novo perfil apparmor.</p><pre><code>$ sudo apparmor\_parser -r /etc/apparmor.d/usr.sbin.mysqld </code></pre> olá!

o que ele está pedindo é para você autorizar que qualquer pessoa possa acessar a pasta sem ser adm/proprietário da pasta.

vamos realizar exatamente o que ele está pedindo, vamos colocar a instrução de que qualquer um pode acessar a pasta no arquivo de configuração do samba.

para isso, abra o… Depende do que você está fazendo. Que você pode mudar se:


* Você precisa de mais escalabilidade ou melhor desempenho - dizer do SQLite para o SQL Server ou Oracle.
* Você precisa ter acesso a tipos de dados mais específicos.
* Você precisa apoiar um cliente que só funciona um banco de dados específico.
* Você precisa de ferramentas melhores DBA.
* Seu aplicativo está usando uma plataforma diferente, onde o seu banco de dados não funciona, ou é bibliotecas não funcionam.


Há muitas mais razões para mudar e tudo depende de suas necessidades. lembre que somente quem tem permissão no arquivo ou diretório poderá alterar as permissões, quando ocorrer erros, verifique seus direitos sobre o arquivo ou diretório com o comando "ls -l" ou faça com poderes de root. 

tendo em mente que o conceito de binário significa 0 = desligado e 1 = ligado, vejamos como fica na tabela abaixo:


 rwx
 0 - 000
 1 - 001
 2 - 010
 3 - 011
 4 - 100
 5 - 101
 6 - 110
 7 - 111



onde "rwx" são as permissões de um arquivo, ou seja:


 r=read (leitura)
 w=write (gravação, alteração, deleção)
 x=execute (execução)



feito isso, sabemos que um arquivo ou diretório possui 3 modos de permissão. uma permissão para o dono do arquivo ou seja, quem o criou, uma outra permissão para o grupo do usuário dono do arquivo, e outra permissão para qualquer outro usuário ou grupo. 

sabendo disso, temos a tabela final abaixo:


 dono grupo outros
 rwx rwx rwx
 0 - 000 000 000
 1 - 001 001 001
 2 - 010 010 010
 3 - 011 011 011
 4 - 100 100 100
 5 - 101 101 101
 6 - 110 110 110
 7 - 111 111 111



exemplo: temos um diretório qualquer chamado mp3 que eu quero permissão total para o dono [eu], permissão de apenas leitura para o meu grupo e nenhuma permissão para o resto do mundo. o comando para executar essa ação é o chmod (em minúsculo mesmo). 

$ chmod 740 /mp3 você já deve ter uma conta da microsoft para isso, certo?  
então, quando você o instalou ele deve ter criado uma pasta chamada skydrive (nome padrão) nos seus documentos. os arquivos que você colocar/excluir nesta pasta e as pastas que você criar/excluir lá dentro serão sincronizados no seu skydrive. <p>não mexa com o banco de dados mysql. há muito mais acontecendo lá do que apenas a tabela de usuários. sua melhor aposta é o comando " <a href="https://dev.mysql.com/doc/refman/5.5/en/show-grants.html">show grants</a> for". eu tenho muitos aliases e funções de manutenção da cli no meu .bashrc (na verdade, meus .bash\_aliases que eu forneço no meu .bashrc). esta função:</p><pre><code>mygrants() { mysql -b -n $@ -e "select distinct concat( 'show grants for \'', user, '\'@\'', host, '\';' ) as query from mysql.user" | \ mysql $@ | \ sed 's/\(grant .*\)/\1;/;s/^\(grants for .*\)/## \1 ##/;/##/{x;p;x;}' } </code></pre><p>o primeiro comando do mysql usa sql para gerar sql válido, que é canalizado para o segundo comando do mysql. a saída é então canalizada através do sed para adicionar comentários bonitos.</p><p>o $ @ no comando permitirá que você o chame como: mygrants --host = prod-db1 --user = admin --password = secret</p><p>você pode usar seu kit de ferramentas unix completo da seguinte maneira:</p><pre><code>mygrants --host=prod-db1 --user=admin --password=secret | grep rails\_admin | mysql --host=staging-db1 --user=admin --password=secret </code></pre><p>essa é a maneira certa de mover usuários. sua mysql acl é modificada com sql puro.</p> Seu terceiro exigência poderia ser facilmente resolvido através da partilha do mesmo banco de dados entre os dois locais (portanto, ter mesa os mesmos usuários. 


O 1º exigência é complicado por causa de problemas entre domínios (o cookie de sessão não será compartilhado).


O que você está procurando realmente é um [Single Sign On (SSO)](http://en.wikipedia.org/wiki/Single_sign-on) . Você pode considerar [django-OpenID](http://simonwillison.net/2007/Apr/24/openidconsumer/) . <p>dá true... 
consegui resolver aqui... refiz todo o curso a partir do início. e instalei novamente o hsqldb.jar.
não deu mais erro.
obrigado a todos pela ajuda!</p> descobri onde está o erro!

nos tutoriais, ele diz:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb\_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

e

sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb\_release -cs) pgadmin4 main" > /etc…