MSSQL Server 2022'de Veritabanlarını, Kullanıcıları ve İzinleri Yönetin
Yaygın olarak MSSQL Server olarak bilinen Microsoft SQL Server, Microsoft Corporation tarafından geliştirilen ilişkisel bir veritabanı yönetim sistemidir (RDBMS). Büyük miktarlarda veriyi depolamak ve yönetmek için kullanılır ve web tabanlı, istemci/sunucu ve bağımsız uygulamalar dahil olmak üzere çeşitli uygulamalarda kullanılabilir.
MS SQL Server kurumsal sektörlerde kullanım alanı bulur; buna finansal hizmetler, e-ticaret ve sağlık hizmetleri de dahildir. Bunun temel nedeni, çok sayıda eşzamanlı kullanıcıyı yönetebilmesi ve hassas verileri depolamak ve yönetmek için güvenli ve güvenilir bir platform sağlamasıdır. MSSQL ayrıca .NET, Java, Node.js vb. gibi çok sayıda programlama dilini ve platformunu da destekler. Bu, onu çok çeşitli uygulamalarda kullanılabilecek çok yönlü bir veritabanı platformu haline getirir.
MSSQL aşağıdakileri içeren bir dizi özellik sunar:
- Ölçeklenebilirlik: Büyük miktarlarda veriyi işleyebilir ve giderek artan sayıda kullanıcıya ve uygulamaya uyum sağlayacak şekilde ölçeklenebilir.
- Güvenlik: Verileri korumak ve düzenlemelere uygunluğu sağlamak için şifreleme, erişim kontrolü ve denetim gibi güçlü güvenlik özellikleri sağlar.
- Yüksek kullanılabilirlik: Yüksek kullanılabilirlik sağlamak ve kesinti süresini en aza indirmek için kümeleme ve çoğaltma gibi özellikler içerir.
- Entegrasyon: MSSQL, .NET, Java ve Node.js dahil olmak üzere çeşitli programlama dilleri ve platformlarıyla entegre olarak uygulamaların geliştirilmesini ve dağıtılmasını kolaylaştırır.
- İş zekası: Ayrıca veri madenciliği, veri ambarı ve OLAP (Çevrimiçi Analitik İşleme) gibi kullanıcıların büyük miktarda veriden öngörü elde etmesine olanak tanıyan gelişmiş analiz ve raporlama özelliklerini de içerir.
- Performans: Hızlı ve verimli veri alımı ve işlenmesini sağlamak için sorgu optimizasyonu ve dizine ekleme gibi özellikler sağlar.
- Bulut yetenekleri: MSSQL, hibrit bulut senaryoları desteğiyle şirket içinde veya bulutta dağıtılabilir.
MS SQL Server 2022'de Veritabanlarını, Kullanıcıları ve İzinleri nasıl yöneteceğimizi derinlemesine incelerken bu kılavuzda bana katılın.
Başlarken
Bu konunun özüne dalmadan önce sisteminizde MSSQL Server 2022'nin kurulu olması gerekmektedir. Bu, ortamınıza bağlı olarak çeşitli şekillerde yapılabilir. Aşağıda MSSQL sunucusu 2022'yi kurmanıza yardımcı olacak özel kılavuzlardan bazıları bulunmaktadır.
- Microsoft SQL Server 2022'yi Docker/Podman Container'da çalıştırın
- Microsoft SQL Server 2022'yi Rocky Linux 8/AlmaLinux 8'e yükleyin
- Microsoft SQL Server 2022'yi Ubuntu 20.04'e Yükleme
Kurulduktan sonra aşağıda gösterildiği gibi devam edin
1. SQL Server komut satırı araçlarını yükleyin
MS SQL Server 2022'deki veritabanlarını yönetmek için SQL Server Management Studio (SSMS), Azure Data Studio ve komut satırı araçları dahil olmak üzere çeşitli araçları kullanabilirsiniz.
Bu kılavuz için MSSQL Server 2022 veritabanlarını komut satırını kullanarak nasıl yöneteceğimizi öğreneceğiz. SQL Server komut satırı araçlarını yükleyeceğiz: sqlcmd ve bcp.
Sisteminize bağlı olarak repository’yi ekleyin ve aşağıdaki komutları kullanarak sqlcmd ve bcp kurulumunu yapın.
- Debian/Ubuntu
Depoyu sisteme ekleyerek başlayın.
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.listEklendikten sonra sisteminizi güncelleyin ve sqlcmd ile bcp'yi yükleyin:
sudo apt-get update
sudo apt-get install mssql-tools unixodbc-devŞimdi PATH ortamını dışa aktarın:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc- Rocky Linux/Alma Linux/CentOS/RedHat'ta
Depoyu şu komutla ekleyin:
curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/msprod.repoEklendikten sonra sqlcmd ve bcp paketlerini yükleyin:
sudo yum remove mssql-tools unixODBC-utf16-devel
sudo yum install mssql-tools unixODBC-develŞimdi PATH ortamını dışa aktarın
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc- SLES'te
SUSE Linux'a mssql araçlarını kurmak da mümkündür. Depoyu ekleyerek başlayın:
sudo zypper addrepo -fc https://packages.microsoft.com/config/sles/12/prod.repo
sudo zypper --gpg-auto-import-keys refreshEklendikten sonra mssql araçlarını şu komutla yükleyin:
sudo zypper install mssql-tools unixODBC-develOrtamı dışa aktarın:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc- MacOS/OS-X'te
HomeBrew'u kullanarak MacOS/OS-X'e sqlcmd ve bcp'yi yükleyebilirsiniz. Repo'yu şu komutla ekleyin:
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-releaseDaha sonra mssql-tools'u şu komutla yükleyin:
brew update
brew install mssql-tools2. MSSQL Server 2022'de Veritabanlarını Yönetin
Artık MSSQL Server 2022'yi yönetmek için Transact-SQL dil ifadelerini kullanabiliriz. Öncelikle aşağıdaki sözdizimine sahip komutu kullanarak veritabanına erişin:
sqlcmd -S IP_ADDRESS -U sa -P '<YourPassword>'Komutta birkaç bayrak vardır:
- -S : SQL Server adını/IP Adresini belirtir
- -U : Kullanıcı adını ayarlar
- -P: Kullanıcı şifresini sağlar
MSSQL'deki varsayılan kullanıcı SA'dır ve şifre kurulum sırasında sağlanmıştır. Aşağıda örnek bir yürütme verilmiştir.
MSSQL Server 2022'ye bağlandıktan sonra artık veritabanlarını yönetebilirsiniz.
A. MSSQL'de Veritabanı Oluşturma
MSSQL Server 2022'de veritabanı oluşturmak için aşağıdaki sözdizimine sahip bir komut kullanın:
CREATE DATABASE [database_name];Örneğin:
CREATE DATABASE sampledb;
GOVeritabanı oluşturulduktan sonra şu komutla veritabanlarını listeleyebilirsiniz:
SELECT Name from sys.databases;
GOÖrnek çıktı:
MSSQL'de Tablolar Oluşturun
Artık yukarıdaki veritabanına tablolar ekleyebiliriz. Bu demo için my_table adında basit bir tablo ekleyeceğim:
USE sampledb;
CREATE TABLE my_table ( id INT PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT );
GOTabloya veri eklemek için:
INSERT INTO my_table (id, name, age)
VALUES (1, 'John', 25)
GOTablodaki verileri görüntülemek için:
SELECT id, name, age FROM my_table
GOÖrnek Çıktı:
MSSQL'de Veritabanı|Tablo Silme
Ayrıca MSSQL'deki bir veritabanını veya tabloyu da silebilirsiniz. Bir tabloyu silmek için aşağıdaki sözdizimine sahip komutu kullanın:
DROP TABLE [table_name]
GOÖrneğin;
DROP TABLE my_table;
GOBir veritabanını silmek için aşağıdaki sözdizimine sahip komutu kullanın:
DROP DATABASE [database_name]
GOÖrneğin:
DROP DATABASE sampledb;
GO3. MSSQL Server 2022'de Kullanıcıları ve İzinleri Yönetin
Varsayılan olarak MSSQL, “sa” kullanıcı adına sahip yönetici kullanıcı olan bir kullanıcıyla birlikte gelir. Ancak başka kullanıcılar oluşturmak ve onlara çeşitli veritabanlarına erişim izni vermek mümkündür.
MSSQL'de kullanıcı yönetimi birkaç kavram vardır:
- Giriş: MSSQL sunucusu örneğine bağlanmak için oturum açmanız gerekir. Kullanıcının kimliğini doğrulamak ve veritabanı motoruna erişim izni vermek için kullanılır. Oturum açma işlemi, SQL Server Management Studio (SSMS) kullanılarak veya
CREATE LOGINT-SQL komutu kullanılarak oluşturulabilir. - Kullanıcı: Kullanıcı, belirli bir veritabanıyla ilişkili bir güvenlik sorumlusudur. Veritabanındaki verilere erişim ve değişiklik yapma izinlerini vermek için kullanılır. Bir kullanıcı SSMS kullanılarak veya T-SQL
CREATE USERkomutu kullanılarak oluşturulabilir. - Kapsam: Oturum açma, ana veritabanında bulunan ve sunucudaki herhangi bir veritabanına bağlanmak için kullanılabilen, sunucu düzeyinde bir nesnedir. Öte yandan kullanıcı, belirli bir veritabanı bağlamında var olan veritabanı düzeyinde bir nesnedir.
- Kimlik Doğrulama: Bir oturum açma işlemi, Windows Kimlik Doğrulaması veya SQL Server Kimlik Doğrulaması kullanılarak MSSQL sunucusu tarafından doğrulanır. Buna karşılık, bir kullanıcının kimliği, oturum açma kimlik bilgileri kullanılarak veritabanı motoru tarafından doğrulanır.
- İzinler: Oturum açma işlemlerine sunucu düzeyinde izinler verilirken, kullanıcılara veritabanı düzeyinde izinler verilir. Bu, oturum açma bilgilerinin sunucudaki herhangi bir veritabanına erişebileceği, ancak kullanıcının yalnızca ilişkili olduğu belirli veritabanına erişebileceği anlamına gelir.
A. MSSQL'de Oturum Açma Kullanıcısı Oluşturma
Daha önce açıklandığı gibi, oturum açan kullanıcı, veritabanı sunucusuna bağlanan bir kullanıcının veya uygulamanın kimliğini doğrulamak için kullanılır.
Oturum açma kullanıcısı oluşturmak için komutu aşağıdaki sözdizimiyle kullanın:
CREATE LOGIN login_name WITH PASSWORD = 'password';
GOÖrneğin;
CREATE LOGIN testuser WITH PASSWORD = 'Passw0rd!';
GOOluşturulduktan sonra MSSQL veritabanı sunucusunda oturum açmak için bunu kullanabilirsiniz:
sqlcmd -S 127.0.0.1 -U testuser Örnek Çıktı:
Varsayılan olarak, oturum açma işleminin herhangi bir veritabanına veya veritabanı nesnesine erişim izni yoktur. Ancak, oturum açma işlemi veritabanı sunucusuna bağlanma yeteneğine sahiptir ve veritabanları oluşturma veya sunucu ayarlarını yönetme gibi yönetim görevlerini gerçekleştirmek için sunucu düzeyinde izinler verilebilir. İzinleri atamak için devam edin ve bir kullanıcıyı etiketleyin.
Bir girişi silmek için şunu kullanın:
DROP LOGIN [username]
GOOturum açma parolasını değiştirmek için şunu kullanın:
ALTER LOGIN [login_name] WITH PASSWORD = 'new_password';
GO[login_name] yerine parolasını değiştirmek istediğiniz oturum açma adını yazın ve 'new_password' yerine yapılandırmak istediğiniz yeni parolayı yazın.
B. MSSQL'de Kullanıcı Oluşturma
Bir oturum açma işlemi oluşturulduktan sonra, söz konusu kullanıcıya belirli veritabanlarına ve veritabanı nesnelerine erişim izni verilmesi için oturum açma işleminin bir veritabanı kullanıcısıyla ilişkilendirilmesi gerekir. Bu ilişkilendirme olmadan, oturum açma bilgileri hiçbir veri tabanına erişemeyecektir. Bir kullanıcı, oturum açma işlemine belirli veritabanlarına ve veritabanı nesnelerine erişim izni vermek için kullanılır.
Şimdi yönetici kullanıcı olarak giriş yapın ve daha önce oluşturulan giriş bilgilerine bir kullanıcı ekleyin. Komutun sözdizimi şöyledir:
CREATE USER user_name FOR LOGIN login_name;Örneğin:
CREATE USER my_user FOR LOGIN testuser;
GOBir kullanıcıyı silmek için komutu sözdizimiyle birlikte kullanın:
DROP USER [username]
GOŞifreyi değiştirmek için;
ALTER USER [userName] WITH PASSWORD = 'New Password'
GOMevcut kullanıcıları komutla görüntüleyin;
SELECT * FROM sys.database_principals WHERE Type = 'S'
GOC. MSSQL'de Oturum Açma|Kullanıcıya İzin Verme
MSSQL'de izinleri ve çeşitli kaynaklara erişimi yönetmek için kullanılan çeşitli yerleşik kullanıcı rolleri vardır. Bu roller, kullanıcılara ve gruplara izin verme sürecini basitleştirmek için tasarlanmıştır. MSSQL'de yaygın olarak kullanılan kullanıcı rollerinden bazıları şunlardır:
Girişler, "sysadmin", "securityadmin", "dbcreator gibi sunucu düzeyinde izinlere ve rollere sahip olabilir. " ve "processadmin ", kullanıcılar ise veritabanı düzeyinde izinlere sahiptir. Bir kullanıcıya tablolar, görünümler, saklı prosedürler ve işlevler gibi veritabanı nesnelerine erişim izni verilebilir. Kullanıcılara "db_owner", "db_datareader", "db_datawriter" ve "db_ddladmin" gibi veritabanı düzeyinde roller atanabilir “
Girişler İçin: (Bu izinleri vermek için ana veritabanını kullanın)
- SysAdmin: Bu rolün MSSQL örneğine tam yönetim erişimi vardır ve sunucuda herhangi bir eylemi gerçekleştirebilir.
- DbCreator: Bu rol veritabanlarını oluşturabilir, değiştirebilir ve bırakabilir.
- SecurityAdmin: Bu rol, kullanıcıların oturum açma bilgilerini, kullanıcıları ve rolleri yönetmesine olanak tanır.
- BackupOperator: Bu rol, kullanıcıların bir veritabanını yedeklemesine ve geri yüklemesine olanak tanır.
- BulkAdmin: Bu rol, kullanıcıların toplu içe ve dışa aktarma işlemlerini yürütmesine olanak tanır.
- DDLAdmin: Bu rol, kullanıcıların tablolar, görünümler ve saklı prosedürler gibi veritabanı nesnelerini oluşturmasına, değiştirmesine ve bırakmasına olanak tanır.
Kullanıcılar için:
- DbOwner: Bu rolün belirli bir veritabanına tam yönetim erişimi vardır ve bu veritabanı üzerinde herhangi bir eylemi gerçekleştirebilir.
- DataReader: Bu rol, kullanıcıların bir veritabanındaki tüm kullanıcı tablolarındaki tüm verileri okumasına olanak tanır.
- DataWriter: Bu rol, kullanıcıların bir veritabanındaki tüm kullanıcı tablolarına veri eklemesine, güncellemesine ve silmesine olanak tanır.
İzinleri verebilmek için oluşturulan kullanıcıya|Giriş'e ayrıcalıklar eklenebilir, önce MSSQL sunucusuna yönetici kullanıcı olarak bağlanın;
sqlcmd -S 127.0.0.1 -U saİzinleri vermek için sp_addrolemember komutunu kullanabiliriz. Kullanıcı için yukarıdaki rollerden herhangi birini ekleyebilirsiniz.
- Veritabanı yazar rolü verme:
USE [database_name]
GO
EXEC sp_addrolemember 'db_datawriter', 'username'
GO- Veritabanı okuyucu rolü verme:
USE [database_name]
GO
EXEC sp_addrolemember 'db_datareader', 'username'
GO- DBcreator rolünü verme:
USE master
GO
EXEC sp_addsrvrolemember 'dbcreator', 'loginname';
GO- Sistem yöneticisi rolünün verilmesi:
USE master
GO
EXEC sp_addsrvrolemember 'sysadmin', 'loginname'
GOYukarıdaki komutların çalışması için, veritabanı_adı'nı veritabanının gerçek adıyla ve kullanıcı adı'nı, kullandığınız gerçek giriş adıyla değiştirmeniz gerekir. rolü vermek istiyorum.
İşe yarayıp yaramadığını göstermek için kullanıcıya DBCreator rolünü ekleyebiliriz:
USE sampledb
CREATE USER my_user FOR LOGIN testuser;
GO
EXEC sp_addrolemember 'db_datareader', 'my_user';
GOKullanıcı için eklenen rolleri görüntüleyin;
1> EXEC sp_helpuser 'my_user';
2> GO
UserName RoleName LoginName DefDBName DefSchemaName UserID SID
-------------- ------------ ---------------- ------------ ------------- ---------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
my_user public testuser master dbo 7 0x138EB720C61D394F96CBD43E42A800E9
1> Eklendikten sonra, bir veritabanı oluşturup silip silemeyeceğimizi test edeceğiz:
D. MSSQL'de Oturum Açma\Kullanıcı İzinlerini İptal Etme
Kullanıcıların izinlerini iptal etmek için aşağıdaki sözdizimine sahip bir komut kullanın:
REVOKE [role] FROM [user_name];
GOÖrneğin:
REVOKE db_datawriter FROM [user_name];
GOGiriş izinlerini iptal etmek için şunu kullanın:
ALTER SERVER ROLE [role] DROP MEMBER [login];Örneğin:
ALTER SERVER ROLE dbcreator DROP MEMBER testuser;Karar
Bu, MS SQL Server 2022'de Veritabanlarının, Kullanıcıların ve İzinlerin nasıl yönetileceğine ilişkin bu kılavuzun sonunu işaret ediyor. Umarım bu bilgilendirici olmuştur.
Bu sayfada daha fazlasını görün:
Warpgate Kullanarak SSH ve MySQL Bastion Sunucusu Nasıl Kurulur
Azure Data Studio'yu Rocky Linux 8|AlmaLinux 8'e yükleyin
Microsoft SQL Server 2022'yi Docker/Podman Container'da çalıştırın




