Sayfalar

6 Mart 2023 Pazartesi

Drop failed for User Hatası(Schema Yetkisi Olan Kullanıcı ile İlgili)

 SQL Sunucu'da Rapor almak için sadece datareader olarak hak verilen Windows Session kullanıcisini silmek istediğimizde aşağıdaki hatayı alıyorduk;







"TITLE: Microsoft SQL Server Management Studio

------------------------------

Drop failed for User 'domain\user'.  (Microsoft.SqlServer.Smo)

For help, click: https://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=16.100.47021.0&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Drop+User&LinkId=20476------------------------------

ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

------------------------------

The database principal owns a schema in the database, and cannot be dropped. (Microsoft SQL Server, Error: 15138)

For help, click: https://docs.microsoft.com/sql/relational-databases/errors-events/mssqlserver-15138-database-engine-error

------------------------------

BUTTONS:

OK

------------------------------"


Hatanın T-SQL olarak ta çözümü olmasına rağmen SQL SSMS üzerinden aşağıdaki şekilde çözülebilmekte:




Öncelikle Schemas düğümünü açıp kullanıcıya datareader schema hakkı verdiğimiz için datareader'ı çift tıklama ile açmamız gerekmekte:





Ardından Schema Properties-General tabına geçip,Schema Owner kısmında ki kullanıcıyı silip burayı db_datareader olarak belirlememiz gerekmektedir.





Bu işlemleri yaptıktan sonra T-SQL Drop user komutu veya Security bölümünde ki kullanıcıyı seçip silme işlemini gerçekleştirebiliriz.