Mini SQL Access Control. ----------------------- Access control is managed by the msql.acl file in the installation directory. This file is split into entries for each database to be controlled. If the file doesn't exist or details for a particular database aren't configured, access reverts to global read/write. an example entry is included below --------------- # Sample access control for mSQL database=test read=bambi,paulp,-* write=root host=*.Bond.edu.au access=local,remote --------------- Using this definition, database 'test' can be accessed by both local and remote connections from any host in the Bond.edu.au domain. Read access is granted to bambi and paulp and denied for everyone else. Write access is only available to root. Control is based on the first match found for a given item. So, a line such as "read=-*,bambi" would not deny access to everyone other than bambi because -* will also match bambi. In this case the line would have to be "read=bambi,-*". Note that if a match isn't made for a particular item, it default to a denial. For example, if there is no "read" line (i.e. there are no read tokens after the data is loaded) nobody will be granted read access. This is in contrast to the action taken if the entire database definition is missing in which case access to everything is granted. Another thing to note is that a databases entry _must_ be followed by a blank line to signify the end of the entry. There may also be multiple config lines in the on entry (such as "read=bambi,paulp" "read=root"). The data will be loaded as though it was concatenated onto the same "read" line (i.e. "read=bambi,paulp,root"). The acl info can be reloaded at runtime using "msqladmin reload". This will parse the file before it sends the reload command to the engine. Only if the file is parsed cleanly is it reloaded. Like all msqladmin commands, it will only be accepted if generated by the root user (or whoever the database was installed as) on the localhost.