Another note, () are also reserved in hostnames, so you could use
"(role)" which would be perfectly clear I think.
Vladimir Shebordaev wrote:
> Cool! But I'd suggest using postfix '$' sign. Its prefix position
> makes 'user'@'$role' notation look a bit overloaded and
> misleadingly analogous to some fictitious variable if it is
> explicitly used. It could probably help to avoid overquoting when
> embedded/dynamic SQL is used in scripting languages... Postfix
> notation could also be easily extended for some LDAP-like reasons
> should that ever be needed.
> On the other hand, under some operating system(s) we've already
> got 'VM$' like notation for specialized objects not to be
> confused with others.
> Well, I mean just nothing more but 'user'@'role$' looks nicer to
> me :)
> Jeremy Cole пишет:
>>> To distinguish roles from users I propose to use "Host" field of
>>> mysql.user table - If this field is empty then we should consider the
>>> specified record to be a role.
>> I see all the discussion around this, but I would propose a different
>> tack: why not use a host which would otherwise be reserved? The
>> similarity in functionality and such between users and roles is obvious,
>> but you don't want to break or change existing functionality. How about
>> e.g. role "foo" would be equivalent to user "foo" @ "$role". Since $
>> (or @, #, &, ^, *, !, etc.) would never appear in a well-formed hostname
>> or IP address, they call all be used to mark a role as such. The
>> commands to deal with roles would then really just be aliases on
>> user@"$role" and thus very easy to implement.
high performance mysql consulting