publicロールには何の権限もありません。つまり、何もできないのです。
よって、何らかの方法で権限を与えることになります。データーベース全体に与えても良いですし、
特定のテーブルのみCRUDできるように権限を与えても良いでしょう。その辺りは自由です。
よく行うのは、データーベースロールのdb_datareader、db_datawriterに属させることです。
こうするとそのデーターベース内の全てのテーブルに対してCRUDできるようになります。
SQLServerでユーザ作成してDBユーザーマッピングするとき、既定ではPublic権限のみがチェックされているが、それだけではDB接続以外は何も出来ない(読み取りすらできない)ので読み書きやdb_ownerなどの権限を与える必要がある。