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 :)
Regards,
Vladimir
Jeremy Cole пишет:
> Hi,
>
>> 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.
>
> Regards,
> Jeremy
>