IME at scale you need a connection pool. Pools usually cache by connection credentials. And maintaining a large variety of roles with disparate access levels is cumbersome. (I've tried.)
The end result is that column, much less row, level controls end up unused in most cases.
Very security conscious places may just use stored procedures for everything, and limit access to those.