データベースの所有者を[sa]に設定しない理由はありますか?


15

昨日、私が持っている複数のデータベースのdboを変更することに関してこの質問をしました。変更は理にかなっていますが、明確にしたいです。

データベースのdboを[sa]に設定するべきではない、正当な理由または状況はありますか?


1
参考:データベースの所有者を変更する場合、または特にこれを一度に多数のデータベースに適用する場合は、データベースユーザーをログインに再関連付けるための規定がスクリプトに含まれていることを確認してください。可能であれば、オフピーク時にこの変更を行ってください。
ジョンセイゲル

回答:


18

SAをデータベースの所有者にすることにより、実際には多くの事柄が単純化および/または解決されますが、セキュリティに影響を与える可能性があります。

SAは、その後、データベースの所有者である場合は特に、それを覚えていますdbo = 'SA'。これは、とりわけ、[EXECUTE As Owner]が含まれる[dbo]スキーマ(デフォルト)のプロシージャが、実際にはSAとして実行されていることを意味します。それはない、かなり、それは音として、あなたが信頼できるように、データベースをマークしていない限り、SQL Serverはそのような偽装サーバーレベルプリンシパルとデータベースのうち、セッションまたはタスクをさせませんので、悪いよう。

これは次の点が表示されます:あなたがしている場合を除き、TRUSTWORTHYなどのデータベースをマークしたことがない、本当に本当に必ずそれが安全であること。[dbo]スキーマでプロシージャを作成できるユーザーは、必要に応じてサーバー全体でSAとして実行できるためです。

独自のSQL Serverデータベースを持つ多くの製品やアプリケーションは、多くの場合、アプリケーションログインがデータベースのDBOでなければならないことを指定するため、別の問題が発生する可能性があります。アプリケーションのログインを「SA」にすることで、明らかに解決できます。願わくば、SQL Serverインスタンスが他の目的で使用されていない限り、絶対にそれをしてはいけないことも明らかです(その場合でもお勧めしません)。


わかりました、追加情報をありがとう。これは非常に便利です。
RLH
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.