{"id":1845,"date":"2019-08-14T12:43:44","date_gmt":"2019-08-14T12:43:44","guid":{"rendered":"https:\/\/www.tiagoneves.net\/blog\/?p=1845"},"modified":"2019-08-14T13:47:17","modified_gmt":"2019-08-14T13:47:17","slug":"conhecendo-as-server-roles-e-database-roles-do-sql-server","status":"publish","type":"post","link":"https:\/\/www.tiagoneves.net\/blog\/conhecendo-as-server-roles-e-database-roles-do-sql-server\/","title":{"rendered":"Conhecendo as Server Roles e Database Roles do SQL Server"},"content":{"rendered":"\n<p>Ol\u00e1 pessoal, tudo certo?<\/p>\n\n\n\n<p>No post de hoje vou falar um pouco sobre seguran\u00e7a. O que me motivou a fazer esse post \u00e9 que comumente encontramos d\u00favidas em f\u00f3runs sobre o n\u00edvel de permiss\u00e3o de cada role do SQL Server, tanto as server roles quanto as database roles, ainda mais depois da LGPD (<strong>Lei Geral de Prote\u00e7\u00e3o de Dados<\/strong>).<\/p>\n\n\n\n<p>Depois da implanta\u00e7\u00e3o da LGPD, estamos vendo um grande despertar e movimento das empresas quanto a import\u00e2ncia da prote\u00e7\u00e3o dos seus dados, ainda mais quando esses dados envolvem informa\u00e7\u00f5es de terceiros. At\u00e9 mesmo porque, a LGDP, prev\u00ea san\u00e7\u00f5es para quem n\u00e3o estiver em conformidade com as boas pr\u00e1ticas. Elas englobam advert\u00eancias, multas e no pior dos casos, a proibi\u00e7\u00e3o, total ou parcial, de atividades relacionadas ao tratamento de dados. As multas podem variar de 2% do faturamento do ano anterior da empresa, at\u00e9 a R$ 50 milh\u00f5es, passando por penalidades di\u00e1rias.<\/p>\n\n\n\n<p>Ent\u00e3o, diante disso, vamos passar pelos n\u00edveis de acesso que cada role, seja <strong>Server Role<\/strong> ou <strong>Database Role,<\/strong> concede aos usu\u00e1rios.<\/p>\n\n\n\n<p>Mas antes vamos revisar como funciona a cria\u00e7\u00e3o dos usu\u00e1rios no SQL Server.<\/p>\n\n\n\n<p>No SQL Server temos 2 tipos de logins: <strong>Windows Authentication<\/strong>, que s\u00e3o os usu\u00e1rios do Windows ou Active Directory (<strong>AD<\/strong>) e login do tipo <strong>SQL Server<\/strong>, que s\u00e3o aqueles que criamos somente no SQL Server.<\/p>\n\n\n\n<p>Quando trabalhamos com Windows Authentication \u00e9 poss\u00edvel criar o acesso para grupos de usu\u00e1rios. O esquema abaixo nos mostra como est\u00e3o subdivididas as camadas de acesso ao SQL Server.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"379\" height=\"568\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos007.png?resize=379%2C568&#038;ssl=1\" alt=\"\" class=\"wp-image-1871\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos007.png?w=379&amp;ssl=1 379w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos007.png?resize=200%2C300&amp;ssl=1 200w\" sizes=\"auto, (max-width: 379px) 100vw, 379px\" \/><\/figure><\/div>\n\n\n\n<p>Quando temos um servidor ingresso em um domino ou n\u00e3o, podemos tanto criar logins tanto utilizando logins do dom\u00ednio ou usu\u00e1rios locais, quanto, grupos de usu\u00e1rios do AD ou locais.<\/p>\n\n\n\n<p>No n\u00edvel de instancia temos os temos os logins (AD, Local ou Grupos) e as server roles, onde concedemos os acessos.<\/p>\n\n\n\n<p>No n\u00edvel de database temos os usu\u00e1rios com ou sem login e as database role.<\/p>\n\n\n\n<p>At\u00e9 o <strong>SQL Server 2008 ou 2008 R2<\/strong>, sempre que precis\u00e1ssemos criar um usu\u00e1rio, primeiro era necess\u00e1rio criar um login na inst\u00e2ncia e depois associar a uma database. Por\u00e9m, isso mudou no <strong>SQL Server 2012<\/strong>, quando come\u00e7ou a ser poss\u00edvel criar um usu\u00e1rio somente no banco de dados, sem a necessidade de criar um login na inst\u00e2ncia.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1531\" height=\"550\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos001.png?fit=678%2C244&amp;ssl=1\" alt=\"\" class=\"wp-image-1872\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos001.png?w=1531&amp;ssl=1 1531w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos001.png?resize=300%2C108&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos001.png?resize=768%2C276&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos001.png?resize=1024%2C368&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos001.png?w=1356&amp;ssl=1 1356w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/figure>\n\n\n\n<p>Como podemos observar na imagem acima, estamos em um SQL Server 2008 R2, onde vamos fazer um teste de criar um usu\u00e1rio direto no banco Stackoverflow, sem criar um login.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE USER [tiago]  \nWITH PASSWORD='123456'  \n    ,DEFAULT_SCHEMA=[dbo]  \nGO   <\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1879\" height=\"909\" src=\"https:\/\/i2.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos002.png?fit=678%2C328&amp;ssl=1\" alt=\"\" class=\"wp-image-1873\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos002.png?w=1879&amp;ssl=1 1879w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos002.png?resize=300%2C145&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos002.png?resize=768%2C372&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos002.png?resize=1024%2C495&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos002.png?w=1356&amp;ssl=1 1356w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/figure>\n\n\n\n<p>Ao tentar criar o usu\u00e1rio, o SQL retorna um erro de sintaxe incorreta.<\/p>\n\n\n\n<p>Agora, vamos fazer a mesma a\u00e7\u00e3o em um SQL Server 2017, por\u00e9m, vamos criar o usu\u00e1rio sem login na base Northwind.<\/p>\n\n\n\n<p>Para criar um usu\u00e1rio sem login \u00e9 necess\u00e1rio fazer algumas altera\u00e7\u00f5es na base de dados e na inst\u00e2ncia.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sp_configure 'show advanced options',1\nGO\nRECONFIGURE WITH OVERRIDE\nGO\nsp_configure 'contained database authentication', 1\nGO\nRECONFIGURE WITH OVERRIDE\nGO\nALTER DATABASE Northwind SET CONTAINMENT = PARTIAL<\/code><\/pre>\n\n\n\n<p>Para ver a documenta\u00e7\u00e3o completa e as limita\u00e7\u00f5es basta acessar o link (<a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/databases\/contained-databases?view=sql-server-2017\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/databases\/contained-databases?view=sql-server-2017 (opens in a new tab)\">https:\/\/docs.microsoft.com\/en-us\/sql\/relational-databases\/databases\/contained-databases?view=sql-server-2017<\/a>).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>USE [Northwind]\nGO\nCREATE USER [tiago] WITH PASSWORD=N'123456', DEFAULT_SCHEMA=[dbo]\nGO\nUSE [Northwind]\nGO\nALTER ROLE [db_owner] ADD MEMBER [tiago]\nGO<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1884\" height=\"907\" src=\"https:\/\/i1.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos003.png?fit=678%2C326&amp;ssl=1\" alt=\"\" class=\"wp-image-1874\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos003.png?w=1884&amp;ssl=1 1884w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos003.png?resize=300%2C144&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos003.png?resize=768%2C370&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos003.png?resize=1024%2C493&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos003.png?w=1356&amp;ssl=1 1356w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/figure>\n\n\n\n<p>Como podemos observar, o usu\u00e1rio foi criado com sucesso.<\/p>\n\n\n\n<p>Para conectar no Management Studio \u00e9 necess\u00e1rio informar qual \u00e9 a database default. Na console de conex\u00e3o, selecione a op\u00e7\u00e3o <strong>\u201cOptions\u201d.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"477\" height=\"314\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos004.png?resize=477%2C314&#038;ssl=1\" alt=\"\" class=\"wp-image-1875\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos004.png?w=477&amp;ssl=1 477w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos004.png?resize=300%2C197&amp;ssl=1 300w\" sizes=\"auto, (max-width: 477px) 100vw, 477px\" \/><\/figure>\n\n\n\n<p>Nas propriedades de conex\u00e3o, voc\u00ea dever\u00e1 informar em qual database voc\u00ea deseja conectar, no caso selecionei \u201cNorthwind\u201d<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"480\" height=\"520\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos005.png?resize=480%2C520&#038;ssl=1\" alt=\"\" class=\"wp-image-1876\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos005.png?w=480&amp;ssl=1 480w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos005.png?resize=277%2C300&amp;ssl=1 277w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/figure>\n\n\n\n<p>Como podemos ver, conseguimos conectar ao banco de dados e temos acesso somente \u00e0 database \u201cNorthwind\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"442\" height=\"583\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos006.png?resize=442%2C583&#038;ssl=1\" alt=\"\" class=\"wp-image-1877\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos006.png?w=442&amp;ssl=1 442w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos006.png?resize=227%2C300&amp;ssl=1 227w\" sizes=\"auto, (max-width: 442px) 100vw, 442px\" \/><\/figure>\n\n\n\n<p>Bom, ent\u00e3o vimos que a partir do SQL Server 2012 \u00e9 poss\u00edvel criar um usu\u00e1rio somente no banco de dados sem a necessidade de criar o usu\u00e1rio na inst\u00e2ncia. Uma grande vantagem de criar os usu\u00e1rios direto no banco de dados \u00e9 quando n\u00f3s utilizamos ambiente com o Always On, pois, em caso de failover os usu\u00e1rios j\u00e1 est\u00e3o na base de dados.<\/p>\n\n\n\n<p><strong>Agora vamos \u00e0s roles de acesso:<\/strong><\/p>\n\n\n\n<p><strong>Server Roles<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"373\" height=\"475\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos008.png?resize=373%2C475&#038;ssl=1\" alt=\"\" class=\"wp-image-1878\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos008.png?w=373&amp;ssl=1 373w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos008.png?resize=236%2C300&amp;ssl=1 236w\" sizes=\"auto, (max-width: 373px) 100vw, 373px\" \/><\/figure>\n\n\n\n<p>No SQL Server temos <strong>9 roles a n\u00edvel de servidor (Server Roles)<\/strong>. Quando concedemos acessos a essas roles, estamos concedendo acesso a n\u00edvel de inst\u00e2ncia, ou seja, as permiss\u00f5es se aplicam a todas as databases.<\/p>\n\n\n\n<p>Para conhecer o n\u00edvel de acesso de cada role podemos utilizar a procedure de sistema sp_srvrolepermission (\u2018nome da role\u2019)<\/p>\n\n\n\n<p><strong><em>Bulkadmin<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"169\" height=\"182\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos009.png?resize=169%2C182&#038;ssl=1\" alt=\"\" class=\"wp-image-1879\"\/><\/figure>\n\n\n\n<p>Essa role \u00e9 normalmente concedia a usu\u00e1rios que fazem extra\u00e7\u00e3o de dados ou ETL. Quando trabalhamos com inser\u00e7\u00e3o em massa no banco de dados com arquivos externos, al\u00e9m do usu\u00e1rio ter a necessidade de ter permiss\u00e3o de insert na tabela ou no banco de dados, ele tamb\u00e9m tem a necessidade de ser membro da role Bulkadmin.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>EXEC sp_srvrolepermission 'Bulkadmin'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"249\" height=\"66\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos010.png?resize=249%2C66&#038;ssl=1\" alt=\"\" class=\"wp-image-1880\"\/><\/figure>\n\n\n\n<p><strong><em>Dbcreator<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"172\" height=\"186\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos011.png?resize=172%2C186&#038;ssl=1\" alt=\"\" class=\"wp-image-1881\"\/><\/figure>\n\n\n\n<p>Como o pr\u00f3prio nome j\u00e1 diz, a role concede a permiss\u00e3o aos seus membros de manipular o status, criar, apagar, renomear e fazer restore das databases. Essa role deve ser concedida com muito cuidado pois, como podemos ver que os membros dessa role podem realizar grandes estragos na inst\u00e2ncia.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>EXEC sp_srvrolepermission 'DBCREATOR'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"244\" height=\"178\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos012.png?resize=244%2C178&#038;ssl=1\" alt=\"\" class=\"wp-image-1882\"\/><\/figure>\n\n\n\n<p><strong><em>Diskadmin<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"184\" height=\"180\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos013.png?resize=184%2C180&#038;ssl=1\" alt=\"\" class=\"wp-image-1883\"\/><\/figure>\n\n\n\n<p>Essa role \u00e9 utilizada basicamente para criar e excluir dispositivos de backups. Ela praticamente n\u00e3o \u00e9 utilizada no SQL Server. (Para falar a verdade nunca vi um caso pr\u00e1tico de utiliza\u00e7\u00e3o dessa role).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>EXEC sp_srvrolepermission 'Diskadmin'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"250\" height=\"121\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/07\/Descricao_Acessos014.png?resize=250%2C121&#038;ssl=1\" alt=\"\" class=\"wp-image-1884\"\/><\/figure>\n\n\n\n<p><strong><em>Processadmin<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"174\" height=\"183\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/Descricao_Acessos015.png?resize=174%2C183&#038;ssl=1\" alt=\"\" class=\"wp-image-1885\"\/><\/figure>\n\n\n\n<p>Essa role tem o poder de executar kill (matar) nas conex\u00f5es da inst\u00e2ncia. Ela, como a diskadmin, praticamente n\u00e3o \u00e9 utilizada, mas se for, ela deve ser concedida a usu\u00e1rios de confian\u00e7a.<\/p>\n\n\n\n<p>Atrav\u00e9s dela podemos at\u00e9 mesmo realizar ataque de nega\u00e7\u00e3o de servi\u00e7o, al\u00e9m de poder adicionar outros usu\u00e1rios na role. Ent\u00e3o devemos ter muito cuidado ao adicionar membros nessa role.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>EXEC sp_srvrolepermission 'Processadmin'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"275\" height=\"59\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/Descricao_Acessos016.png?resize=275%2C59&#038;ssl=1\" alt=\"\" class=\"wp-image-1886\"\/><\/figure>\n\n\n\n<p><strong><em>Public<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"208\" height=\"182\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/Descricao_Acessos017-1.png?resize=208%2C182&#038;ssl=1\" alt=\"\" class=\"wp-image-1888\"\/><\/figure>\n\n\n\n<p>Todo login do&nbsp;SQL Server&nbsp;pertence \u00e0 role Public, ela tem acesso para conectar na instancia e visualizar os bancos de dados da inst\u00e2ncia, al\u00e9m de executar instru\u00e7\u00f5es de select no banco Master.&nbsp;Devemos tomar muito cuidado pois \u00e9 bastante comum encontrar ambientes com permiss\u00f5es a Role Public.<\/p>\n\n\n\n<p><strong><em>Securityadmin<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"193\" height=\"187\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/Descricao_Acessos018.png?resize=193%2C187&#038;ssl=1\" alt=\"\" class=\"wp-image-1889\"\/><\/figure>\n\n\n\n<p>Os membros da role&nbsp;<strong>securityadmin<\/strong>&nbsp;gerenciam os logins, podendo criar, dropar e alterar senha.&nbsp;Eles podem ter as permiss\u00f5es de n\u00edvel de servidor&nbsp;GRANT,&nbsp;DENY&nbsp;e&nbsp;REVOKE.&nbsp;Eles tamb\u00e9m podem alterar as permiss\u00f5es de n\u00edvel de banco de dados&nbsp;GRANT,&nbsp;DENY&nbsp;e&nbsp;REVOKE&nbsp;se tiverem acesso ao banco de dados.<\/p>\n\n\n\n<p>Essa role devido ao fato de poder gerenciar logins \u00e9 um papel poderoso. Ela inclusive pode conseguir se adicionar a role <strong>sysadmin<\/strong> ou adicionar outro usu\u00e1rio a role sysadmin. Portanto a participa\u00e7\u00e3o nessa role deve ser cuidadosamente controlada.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>EXEC sp_srvrolepermission 'securityadmin'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"334\" height=\"328\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/Descricao_Acessos019.png?resize=334%2C328&#038;ssl=1\" alt=\"\" class=\"wp-image-1890\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/Descricao_Acessos019.png?w=334&amp;ssl=1 334w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/Descricao_Acessos019.png?resize=300%2C295&amp;ssl=1 300w\" sizes=\"auto, (max-width: 334px) 100vw, 334px\" \/><\/figure>\n\n\n\n<p><strong><em>Serveradmin<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"173\" height=\"185\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/Descricao_Acessos020.png?resize=173%2C185&#038;ssl=1\" alt=\"\" class=\"wp-image-1891\"\/><\/figure>\n\n\n\n<p>Os membros dessa role podem alterar configura\u00e7\u00f5es da inst\u00e2ncia, dar um SHUTDOWN na inst\u00e2ncia, ou seja, outra role que voc\u00ea deve evitar conceder acesso. \u00c9 verdade que \u00e9 muito raro voc\u00ea encontrar algu\u00e9m como membro dessa role pois, normalmente as configura\u00e7\u00f5es da inst\u00e2ncia ficam a cargo do DBA, que normalmente \u00e9 sysadmin.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>EXEC sp_srvrolepermission 'serveradmin'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"263\" height=\"155\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/Descricao_Acessos021.png?resize=263%2C155&#038;ssl=1\" alt=\"\" class=\"wp-image-1892\"\/><\/figure>\n\n\n\n<p><strong><em>Setupadmin<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"206\" height=\"179\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/Descricao_Acessos022.png?resize=206%2C179&#038;ssl=1\" alt=\"\" class=\"wp-image-1893\"\/><\/figure>\n\n\n\n<p>Os membros da role setupadmin basicamente tem permiss\u00e3o para gerenciar linkedserver. Essa \u00e9 outra role que praticamente n\u00e3o encontramos em uso, uma vez que normalmente quem cria os linkedserver\u2019s s\u00e3o os DBA\u2019s.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>EXEC sp_srvrolepermission 'setupadmin'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"314\" height=\"79\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/Descricao_Acessos023.png?resize=314%2C79&#038;ssl=1\" alt=\"\" class=\"wp-image-1894\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/Descricao_Acessos023.png?w=314&amp;ssl=1 314w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/Descricao_Acessos023.png?resize=300%2C75&amp;ssl=1 300w\" sizes=\"auto, (max-width: 314px) 100vw, 314px\" \/><\/figure>\n\n\n\n<p><strong><em>Sysadmin<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"153\" height=\"186\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/Descricao_Acessos024.png?resize=153%2C186&#038;ssl=1\" alt=\"\" class=\"wp-image-1895\"\/><\/figure>\n\n\n\n<p>Essa \u00e9 a role mais importante do banco. Essa \u00e9 aquela que voc\u00ea nunca, jamais, em hip\u00f3tese alguma, deve conceder a usu\u00e1rios, usu\u00e1rios de sistemas e consultores externos.<\/p>\n\n\n\n<p>A role sysadmin tem o poder de fazer qualquer a\u00e7\u00e3o tanto na inst\u00e2ncia, quanto nos bancos de dados. Ela pode criar ou dropar usu\u00e1rios, conceder ou remover acessos, enfim ela pode tudo.<\/p>\n\n\n\n<p>\u00c9 muito comum encontrar em cliente v\u00e1rios usu\u00e1rios com acesso a role sysadmin, inclusive \u00e9 uma boa pr\u00e1tica at\u00e9 mesmo desabilitar o usu\u00e1rio SA.<\/p>\n\n\n\n<p>Para verificar todas as a\u00e7\u00f5es do sysadmin, execute o seguinte comando.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>EXEC sp_srvrolepermission 'Sysadmin'<\/code><\/pre>\n\n\n\n<p><strong><em>Database Roles<\/em><\/strong><\/p>\n\n\n\n<p>As databases roles s\u00e3o as roles de acesso a n\u00edvel de banco de dados, assim como as server roles, cada database role libera um n\u00edvel de acesso.<\/p>\n\n\n\n<p>No SQL Server existem 10 databases roles, vejamos o n\u00edvel de permiss\u00e3o de cada uma.<\/p>\n\n\n\n<p><strong><em>Db_accessadmin<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"199\" height=\"203\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image.png?resize=199%2C203&#038;ssl=1\" alt=\"\" class=\"wp-image-1897\"\/><\/figure>\n\n\n\n<p>Os membros da role db_accessadmin tem a permiss\u00e3o de adicionar e remover os usu\u00e1rios em um banco de dados. Essa \u00e9 um role pouco utilizada, uma vez que os acessos s\u00e3o gerenciados pelo DBA e as aplica\u00e7\u00f5es n\u00e3o necessitam gerenciar acesso.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sp_dbfixedrolepermission 'Db_accessadmin'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"249\" height=\"81\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-1.png?resize=249%2C81&#038;ssl=1\" alt=\"\" class=\"wp-image-1898\"\/><\/figure>\n\n\n\n<p><strong><em>Db_backupoperator<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"203\" height=\"205\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-2.png?resize=203%2C205&#038;ssl=1\" alt=\"\" class=\"wp-image-1899\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-2.png?w=203&amp;ssl=1 203w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-2.png?resize=150%2C150&amp;ssl=1 150w\" sizes=\"auto, (max-width: 203px) 100vw, 203px\" \/><\/figure>\n\n\n\n<p>Essa role tem permiss\u00e3o de executar o backup do banco de dados, por\u00e9m, somente os backups nativos do SQL Server, se voc\u00ea quiser fazer backup utilizando ferramenta de terceiros voc\u00ea n\u00e3o vai conseguir.<\/p>\n\n\n\n<p>Voc\u00ea deve tomar cuidado com os membros dessa role pois, como o usu\u00e1rio consegue fazer backup da base de dados, ele pode fazer o restore da base em uma inst\u00e2ncia onde ele tenha acesso full.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sp_dbfixedrolepermission 'Db_backupoperator'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"267\" height=\"78\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-3.png?resize=267%2C78&#038;ssl=1\" alt=\"\" class=\"wp-image-1900\"\/><\/figure>\n\n\n\n<p><strong><em>Db_datareader<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"206\" height=\"201\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-4.png?resize=206%2C201&#038;ssl=1\" alt=\"\" class=\"wp-image-1901\"\/><\/figure>\n\n\n\n<p>Os membros dessa role tem a permiss\u00e3o fazer leitura de qualquer tabela ou view da base de dados.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sp_dbfixedrolepermission 'Db_datareader'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"303\" height=\"43\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-5.png?resize=303%2C43&#038;ssl=1\" alt=\"\" class=\"wp-image-1902\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-5.png?w=303&amp;ssl=1 303w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-5.png?resize=300%2C43&amp;ssl=1 300w\" sizes=\"auto, (max-width: 303px) 100vw, 303px\" \/><\/figure>\n\n\n\n<p><strong><em>Db_datawriter<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"215\" height=\"197\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-6.png?resize=215%2C197&#038;ssl=1\" alt=\"\" class=\"wp-image-1903\"\/><\/figure>\n\n\n\n<p>Os membros dessa role tem a permiss\u00e3o de fazer opera\u00e7\u00f5es de insert, update e delete em qualquer tabela da base de dados.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sp_dbfixedrolepermission 'Db_datawriter'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"83\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-7.png?resize=300%2C83&#038;ssl=1\" alt=\"\" class=\"wp-image-1904\"\/><\/figure>\n\n\n\n<p><strong><em>DB_ddladmin<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"186\" height=\"203\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-8.png?resize=186%2C203&#038;ssl=1\" alt=\"\" class=\"wp-image-1905\"\/><\/figure>\n\n\n\n<p>Os membros da role tem permiss\u00e3o de criar, alterar e excluir qualquer estrutura do bando de dados. Em resumo, podem executar qualquer comando <strong>Data Definition Language<\/strong> (DDL), exceto gerenciar acesso com GRANT, DENY e REVOKE.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sp_dbfixedrolepermission 'DB_ddladmin'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"321\" height=\"246\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-9.png?resize=321%2C246&#038;ssl=1\" alt=\"\" class=\"wp-image-1906\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-9.png?w=321&amp;ssl=1 321w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-9.png?resize=300%2C230&amp;ssl=1 300w\" sizes=\"auto, (max-width: 321px) 100vw, 321px\" \/><\/figure>\n\n\n\n<p><strong><em>Db_denydatareader<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"204\" height=\"194\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-10.png?resize=204%2C194&#038;ssl=1\" alt=\"\" class=\"wp-image-1907\"\/><\/figure>\n\n\n\n<p>Os membros desta role n\u00e3o podem ler dados de tabelas ou views.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sp_dbfixedrolepermission 'Db_denydatareader'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"395\" height=\"43\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-11.png?resize=395%2C43&#038;ssl=1\" alt=\"\" class=\"wp-image-1908\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-11.png?w=395&amp;ssl=1 395w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-11.png?resize=300%2C33&amp;ssl=1 300w\" sizes=\"auto, (max-width: 395px) 100vw, 395px\" \/><\/figure>\n\n\n\n<p><strong><em>Db_denydatawriter<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"210\" height=\"201\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-12.png?resize=210%2C201&#038;ssl=1\" alt=\"\" class=\"wp-image-1909\"\/><\/figure>\n\n\n\n<p>Os membros desta role n\u00e3o podem realizar <strong>insert<\/strong>, <strong>delete <\/strong>ou <strong>update <\/strong>em uma tabela.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sp_dbfixedrolepermission 'Db_denydatawriter'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"469\" height=\"82\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-13.png?resize=469%2C82&#038;ssl=1\" alt=\"\" class=\"wp-image-1910\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-13.png?w=469&amp;ssl=1 469w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-13.png?resize=300%2C52&amp;ssl=1 300w\" sizes=\"auto, (max-width: 469px) 100vw, 469px\" \/><\/figure>\n\n\n\n<p><strong><em>Db_owner<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"191\" height=\"197\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-14.png?resize=191%2C197&#038;ssl=1\" alt=\"\" class=\"wp-image-1911\"\/><\/figure>\n\n\n\n<p>Os membros desta role tem a permiss\u00e3o full no banco de dados, basicamente um sysadmin por\u00e9m, do banco de dados. Os membros da role <strong>db_owner <\/strong>podem fazer select em qualquer tabela, realizar <strong>insert<\/strong>, <strong>update <\/strong>e <strong>delete <\/strong>em qualquer tabela, <strong>criar <\/strong>e <strong>dropar <\/strong>qualquer objeto do banco, seja tabelas, <strong>views<\/strong>, <strong>procedures <\/strong>ou <strong>functions<\/strong>, <strong>executar <\/strong>qualquer procedure ou function e podem gerir os acessos, concedendo <strong>Grant<\/strong>, <strong>Deny <\/strong>e <strong>Revoke<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sp_dbfixedrolepermission 'db_owner'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"312\" height=\"799\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-15.png?resize=312%2C799&#038;ssl=1\" alt=\"\" class=\"wp-image-1912\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-15.png?w=312&amp;ssl=1 312w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-15.png?resize=117%2C300&amp;ssl=1 117w\" sizes=\"auto, (max-width: 312px) 100vw, 312px\" \/><\/figure>\n\n\n\n<p><strong><em>Db_securityadmin<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"202\" height=\"201\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-17.png?resize=202%2C201&#038;ssl=1\" alt=\"\" class=\"wp-image-1914\" srcset=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-17.png?w=202&amp;ssl=1 202w, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-17.png?resize=150%2C150&amp;ssl=1 150w\" sizes=\"auto, (max-width: 202px) 100vw, 202px\" \/><\/figure>\n\n\n\n<p>Os membros desta role podem criar ou apagar logins, al\u00e9m de gerenciar os acessos. Como normalmente quem gerencia os acessos \u00e9 o DBA e normalmente ele est\u00e1 na role sysadmin ou na role db_owner, essa role \u00e9 pouco utilizada. Quando voc\u00ea encontrar algum usu\u00e1rios nessa role, vale voc\u00ea tentar entender o motivo e se realmente ele deve ser membro desta role.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sp_dbfixedrolepermission 'Db_securityadmin'<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"268\" height=\"230\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-18.png?resize=268%2C230&#038;ssl=1\" alt=\"\" class=\"wp-image-1915\"\/><\/figure>\n\n\n\n<p><strong><em>Public<\/em><\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"193\" height=\"197\" src=\"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/image-19.png?resize=193%2C197&#038;ssl=1\" alt=\"\" class=\"wp-image-1916\"\/><\/figure>\n\n\n\n<p>Assim como a server role Public, a database role Public \u00e9 a role defaul para todo usu\u00e1rio do banco de dados.<\/p>\n\n\n\n<p>Os membros da role Public podem somente conectar no banco e n\u00e3o conseguem executar nenhum comando, a n\u00e3o ser que exista um GRANT impl\u00edcito para a role Public.<\/p>\n\n\n\n<p>Bom como podemos ver, existem diversos niveis de acessos tanto a nivel de inst\u00e2ncia (server roles), quanto a nivel de banco de dados (database roles). Conceder os acessos corretos a cada usu\u00e1rio pode fazer que voc\u00ea tenha um grande ganho de seguran\u00e7a.<\/p>\n\n\n\n<p>Bom pessoal, por hoje \u00e9 isso.<\/p>\n\n\n\n<p>At\u00e9 o pr\u00f3ximo post.<\/p>\n\n\n\n<p>Abra\u00e7os,<\/p>\n\n\n\n<p>Tiago Neves<\/p>\n\n\n\n<p>Curta a minha p\u00e1gina no <a href=\"https:\/\/www.facebook.com\/TiagoNevesDBA\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\"facebook  (opens in a new tab)\">facebook <\/a>e fique por dentro das novidades do mundo SQL Server.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hoje em dia, seguran\u00e7a \u00e9 um assunto s\u00e9rio quando falamos de dados, neste post explico os n\u00edveis de acessos e permiss\u00e3o de cada role do SQL Server.<\/p>\n","protected":false},"author":1,"featured_media":2065,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rop_custom_images_group":[],"rop_custom_messages_group":[],"rop_publish_now":"initial","rop_publish_now_accounts":{"twitter_91251433_91251433":""},"rop_publish_now_history":[],"rop_publish_now_status":"pending","_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Hoje em dia, seguran\u00e7a \u00e9 um assunto s\u00e9rio quando falamos de dados, neste post explico os n\u00edveis de acessos e permiss\u00e3o de cada role do SQL Server.","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpscppro_dont_share_socialmedia":false,"_wpscppro_custom_social_share_image":0,"_facebook_share_type":"","_twitter_share_type":"","_linkedin_share_type":"","_pinterest_share_type":"","_linkedin_share_type_page":"","_instagram_share_type":"","_medium_share_type":"","_threads_share_type":"","_google_business_share_type":"","_selected_social_profile":[],"_wpsp_enable_custom_social_template":false,"_wpsp_social_scheduling":{"enabled":false,"datetime":null,"platforms":[],"status":"template_only","dateOption":"today","timeOption":"now","customDays":"","customHours":"","customDate":"","customTime":"","schedulingType":"absolute"},"_wpsp_active_default_template":true},"categories":[277,271,220,16,26,20],"tags":[278,259,127,65,66,35],"class_list":["post-1845","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-seguranca","category-sql-server-2008","category-sql-server-2017","category-sqlserver-2014","category-sqlserver-2016","category-sqlserver-geral","tag-database-roles","tag-dbaremoto","tag-dbasqlserver","tag-seguranca","tag-server-roles","tag-sql-server"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2019\/08\/images.png?fit=248%2C203&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6eIyh-tL","jetpack-related-posts":[{"id":2414,"url":"https:\/\/www.tiagoneves.net\/blog\/sql-server-2016-esta-chegando-ao-fim-do-suporte-o-que-isso-significa-na-pratica\/","url_meta":{"origin":1845,"position":0},"title":"SQL Server 2016 est\u00e1 chegando ao fim do suporte: o que isso significa na pr\u00e1tica?","author":"tiagoneves","date":"27 de abril de 2026","format":false,"excerpt":"O SQL Server 2016 ter\u00e1 seu suporte estendido encerrado em 14 de julho de 2026, o que resultar\u00e1 na falta de atualiza\u00e7\u00f5es de seguran\u00e7a e suporte. Continuar usando essa vers\u00e3o traz riscos como vulnerabilidades e n\u00e3o conformidade regulat\u00f3ria. Planejar a migra\u00e7\u00e3o para vers\u00f5es mais recentes ou cloud deve ser prioridade\u2026","rel":"","context":"Em &quot;Seguran\u00e7a&quot;","block_context":{"text":"Seguran\u00e7a","link":"https:\/\/www.tiagoneves.net\/blog\/category\/seguranca\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2026\/04\/sql_server_2016_eos_v3.png?fit=772%2C702&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2026\/04\/sql_server_2016_eos_v3.png?fit=772%2C702&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2026\/04\/sql_server_2016_eos_v3.png?fit=772%2C702&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.tiagoneves.net\/blog\/wp-content\/uploads\/2026\/04\/sql_server_2016_eos_v3.png?fit=772%2C702&ssl=1&resize=700%2C400 2x"},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/posts\/1845","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/comments?post=1845"}],"version-history":[{"count":5,"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/posts\/1845\/revisions"}],"predecessor-version":[{"id":2069,"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/posts\/1845\/revisions\/2069"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/media\/2065"}],"wp:attachment":[{"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/media?parent=1845"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/categories?post=1845"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tiagoneves.net\/blog\/wp-json\/wp\/v2\/tags?post=1845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}