SQL Server データーベースロールのPublicロールは接続以外なにもできない

https://social.msdn.microsoft.com/Forums/security/ja-JP/d0d76738-0024-480e-bc24-093316977fab/public12525125401252312398201812709612395123881235612390?forum=sqlserverja

publicロールには何の権限もありません。つまり、何もできないのです。
よって、何らかの方法で権限を与えることになります。データーベース全体に与えても良いですし、
特定のテーブルのみCRUDできるように権限を与えても良いでしょう。その辺りは自由です。
よく行うのは、データーベースロールのdb_datareader、db_datawriterに属させることです。
こうするとそのデーターベース内の全てのテーブルに対してCRUDできるようになります。

SQLServerでユーザ作成してDBユーザーマッピングするとき、既定ではPublic権限のみがチェックされているが、それだけではDB接続以外は何も出来ない(読み取りすらできない)ので読み書きやdb_ownerなどの権限を与える必要がある。