sqlschool.gr logo

articles

Articles of SQLschool.gr Team

Create a db_executor database role

Antonios Chatzipavlis
Wednesday 21 January 2015

Επειδή το security στη database είναι αρκετά σημαντικό και πραγματικά δεν ξέρω γιατί οι περισσότεροι δεν δίνουν την πρέπουσα σημασία σε αυτό το σύντομο post θα σας δώσω ένα tip του οποίου η εφαρμογή ξεπερνάει το 99% των περιπτώσεων.

Οι περισσότεροι χρήστες που μπαίνουν σε μια database δεν χρειάζονται τίποτα περισσότερο από read / write δικαιώματα. Αυτά τα δικαιώματα είναι εύκολο να αποδοθούν εντάσσοντας τους χρήστες στους ήδη προκαθορισμένους ρόλους που κάθε database έχει και δεν είναι άλλοι από τους db_datareader και db_datawriter.

Σε μια βάση υπάρχουν αρκετές stored procedures και functions που χρειάζεται να εκτελούν οι χρήστες είτε άμεσα είτε μέσα από τις εφαρμογές. Αυτό σημαίνει ότι πρέπει οι χρήστες να έχουν το δικαίωμα EXECUTE για να μπορούν να τις εκτελέσουν.

Επειδή δεν υπάρχει κάποιος έτοιμος database role για να δίνει το EXECUTE permission και επειδή θα πρέπει να το κάνεις για κάθε χρήστη και για κάθε SP ή UDF οι περισσότεροι βαριούνται (ναι αυτό συμβαίνει) και βάζουν όλους τους χρήστες στον db_owner role.

ΛΑΘΟΣ, ΜΕΓΑ ΛΑΘΟΣ!!!

Το γεγονός ότι δεν υπάρχει ο ρόλος αυτός δεν σημαίνει ότι δεν μπορούμε να τον φτιάξουμε και μάλιστα δεν παίρνει πάνω από 1 λεπτό για να γίνει κάτι τέτοιο.

Στο script που ακολουθεί δημιουργούμε το ρόλο και σε αυτόν τον ρόλο του δίνουμε το δικαίωμα EXECUTE. Αυτό ήταν από εκεί και πέρα όταν βάζουμε ένα χρήστη στην database απλά τον βάζουμε και στο ρόλο αυτό.

Είναι τόσο απλό….


USE [northwind] -- change to your database
GO
CREATE ROLE [db_executor]
GO

GRANT EXECUTE TO db_executor
GO

/*antonch*/

Antonios Chatzipavlis

Antonios Chatzipavlis

Antonios is a Data Solutions Consultant and Trainer. He has been working in IT since 1988. In his career, he has worked as senior developer, IT Manager, Solutions Architect and IT Consultant. Since 1995 he has been devoted on new technologies and software development tools, mainly by Microsoft, either by training company staff and colleagues or assisting them in design, development and implementation as a consultant or chief developer. He has focused in Databases and Data Science since 1995. He specialized in Microsoft SQL Server since version 6.0 in areas like SQL Server Internals, Database Design and Development, Business Intelligence and in 2010 he has started working with Azure Data Platform, NoSQL databases, Big Data Technologies and Machine Learning. He is an active member of many IT communities in Greece, answering colleagues' questions and writing articles in his web site. He is the owner of SQLschool.gr which is a community portal with a lot of information about Microsoft SQL Server. He has been a Microsoft Certified Trainer (MCT) since 2000. Microsoft honored him as MVP on Data Platform due to his activities in SQL Server since 2010. He holds a large number of Microsoft Certifications and Microsoft SQL Server Certifications since version 6.5.

Episode

Task Flows in Microsoft Fabric

image

More Episodes...

Tip

What's New in SQL Server 2022 - Episodes

More Tips...

Become a member

If you want to receive updates from us become a member to our community.

Connect

Explore

Learn


sqlschool.gr © 2010-2025 All rights reserved

This site uses cookies for operational and analytics purposes only. By continuing to browse this site, you agree to their use.